Java Novice Notes 33 multi-threaded, client, server

Source: Internet
Author: User
Tags ticket

1.Mouse

Package Com.yfs.javase;public class Mouse {private int index = 1;private Boolean islive = false;//Bounce method  sync lock public synch ronized void Jump () {while (true) {if (!islive) {System.out.println ("Step out" + Index + "vole");//Modify the vole state islive = true;//notify the thread of the hit/ /notify ();} else {//When the front thread waits for//try {//wait ();/} catch (Interruptedexception e) {//e.printstacktrace ();//}}}}public synchronized void Hit () {while (true) {if (islive) {System.out.println ("knocked out" + index + "voles"); Index ++;islive = false;//notify ();//Notifies the mouse to put the thread of the voles} else {//try {////wait ();/} catch (Interruptedexception e) {// E.printstacktrace ();/}}}}}

2.Producer

Package Com.yfs.javase;public class Producer extends Thread {private Mouse mouse;public Producer (Mouse  Mouse) { This.mouse = mouse;} @Overridepublic void Run () {mouse.jump ();}}

3.Customer

Package Com.yfs.javase;public class Customer extends Thread {private Mouse mouse;public customer (Mouse Mouse) {This.mouse = mouse;} @Overridepublic void Run () {mouse.hit ();}}

4.MouseTest

Package Com.yfs.javase;public class Mousetest {public static void main (string[] args) {Mouse Mouse = new Mouse (); New Produ CER (mouse). Start (); new Customer (mouse). Start ();}}

5.Ticket

Package Com.yfs.javase;public class Ticket implements Runnable {private int index = 100;//shared resource//lock mechanism @overridepublic void RU N () {while (Index > 0) {synchronized (this) {///sync lock  Current object try {Thread.Sleep (3)} catch (Interruptedexception e) {E.pri Ntstacktrace ();} if (index <= 0) {break;} System.out.println (Thread.CurrentThread (). GetName () + "  first  " + index  +  "  ticket sold"); index--;}}}

6.TicketTest

Package Com.yfs.javase;public class Tickettest {public static void main (string[] args) {Ticket tickets = new Ticket (); new Thread (tickets, "number 1th"). Start (); New Thread (tickets, "2nd"). Start (); New Thread (Tickets, "3rd"). Start (); New Thread (tickets , "number 4th"). Start ();}}

7.IP Address/Host name

Package Com.yfs.javase.net;import Java.net.inetaddress;public class Addressdemo {/** * @param args */public static void Ma In (string[] args) throws Exception {inetaddress add1 = Inetaddress.getlocalhost (); System.out.println ("IP Address:" + add1.gethostaddress ()); SYSTEM.OUT.PRINTLN ("Host name:" + add1.gethostname ()), inetaddress add2 = Inetaddress.getbyname ("www.baidu.com"); System.out.println ("IP Address:" + add2.gethostaddress ()); SYSTEM.OUT.PRINTLN ("Host name:" + add2.gethostname ());}}

8.server1

Package Com.yfs.javase.net;import Java.io.outputstream;import Java.net.serversocket;import java.net.Socket;public Class Server1 {/** * Boot service listener port */public static void Main (string[] args) throws Exception {ServerSocket Server = new server Socket (3000);//Start System.out.println ("Server boot, monitor 3000 port ..."); Socket socket = server.accept ();//Listen for additional host connections        String other = Socket.getinetaddress (). gethostaddress (); System.out.println (Other + "request connection ...");//send information to   get output stream OutputStream out = Socket.getoutputstream (); Out.write (' a '); O Ut.flush ();//Refresh Out.close (); SYSTEM.OUT.PRINTLN ("Send Message Complete");}}

9.client1

Package com.yfs.javase.net;

Import Java.io.InputStream;
Import Java.net.Socket;

public class Client1 {

/**
* @param args
*/
public static void Main (string[] args) throws Exception {
Socket socket = new Socket ("192.168.1.30", 3000);
Receive information
InputStream in = Socket.getinputstream ();
int val = In.read ();
System.out.println ("val =" + (char) val);
In.close ();
}

}

10.server2

Package Com.yfs.javase.net;import Java.io.bufferedoutputstream;import Java.io.outputstream;import Java.io.outputstreamwriter;import Java.io.printwriter;import Java.net.serversocket;import Java.net.Socket;public Class Server2 {/** * Boot service listener port */public static void Main (string[] args) throws Exception {ServerSocket Server = new server Socket (3000);//Start System.out.println ("Server boot, monitor 3000 port ..."); Socket socket = server.accept ();//Listen for additional host connections        String other = Socket.getinetaddress (). gethostaddress (); System.out.println (Other + "request connection ...");//send information to   get output stream OutputStream out = Socket.getoutputstream (); Bufferedoutputstream buf = new Bufferedoutputstream (out); PrintWriter pw = new PrintWriter (new OutputStreamWriter (BUF));    Pw.println ("Hello, boys and girls! This is the information sent by the server .... ");    Pw.close ();    Buf.close (); Out.close (); SYSTEM.OUT.PRINTLN ("Send Message Complete");}}

11.client2

Package Com.yfs.javase.net;import Java.io.bufferedinputstream;import Java.io.bufferedreader;import Java.io.inputstream;import Java.io.inputstreamreader;import Java.net.socket;public class Client2 {/** * @param args */ public static void Main (string[] args) throws Exception {socket socket = new Socket ("192.168.1.30", 3000);//Receive Information Inputstrea M in = Socket.getinputstream (); BufferedReader read = new BufferedReader (new InputStreamReader (in)); String msg = Read.readline (); SYSTEM.OUT.PRINTLN ("server says:" + msg); Read.close (); In.close ();}}

12.server3

Package Com.yfs.javase.net;import Java.io.bufferedoutputstream;import Java.io.outputstream;import Java.io.outputstreamwriter;import Java.io.printwriter;import Java.net.serversocket;import Java.net.Socket;import Java.util.scanner;public class Server3 {/** * Boot service listener port */public static void Main (string[] args) throws Exception {ServerS Ocket Server = new ServerSocket (3000);//Start System.out.println ("Server boot, listen 3000 ports ..."); Socket socket = server.accept ();//Listen for additional host connections String other = Socket.getinetaddress (). gethostaddress (); System.out.println (Other + "request connection ...");//send information to get output stream outputstream out = Socket.getoutputstream (); Bufferedoutputstream buf = new Bufferedoutputstream (out);    PrintWriter pw = new PrintWriter (new OutputStreamWriter (BUF)); Pw.println ("Hello, boys and girls!    This is the information sent by the server .... ");    Pw.flush ();    Scanner scan = new Scanner (system.in);    String msg = NULL;    int i = 1;    while (I <) {msg = Scan.next ();    PW.PRINTLN (msg);    Pw.flush ();    i++;    } pw.close (); Buf.close (); OUt.close (); SYSTEM.OUT.PRINTLN ("Send Message Complete");}}

13.client3

Package Com.yfs.javase.net;import Java.io.bufferedinputstream;import Java.io.bufferedreader;import Java.io.inputstream;import Java.io.inputstreamreader;import Java.net.socket;public class Client3 {/** * @param args */ public static void Main (string[] args) throws Exception {socket socket = new Socket ("192.168.1.30", 3000);//Receive Information Inputstrea M in = Socket.getinputstream (); BufferedReader read = new BufferedReader (new InputStreamReader (in)); String msg = Read.readline (); SYSTEM.OUT.PRINTLN ("server says:" + msg); int i = 1;while (i <) {msg = Read.readline (); SYSTEM.OUT.PRINTLN ("server says:" + msg); i++;} Read.close (); In.close ();}}

Java Novice Notes 33 multi-threaded, client, server

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.