Java Socket编程 消息接收和发送类

来源:互联网 发布:织梦网站源码 编辑:程序博客网 时间:2024/04/29 10:25
 
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.InetAddress;import java.net.Socket;import java.net.UnknownHostException;//客户端public class ReceiverThread_A extends Thread {private Socket socket;private BufferedReader br;private PrintStream ps;private String ReadLine = "";public ReceiverThread_A() {try {socket = new Socket(InetAddress.getLocalHost(), 5698);br = new BufferedReader(new InputStreamReader(socket.getInputStream()));ps = new PrintStream(socket.getOutputStream());} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}public PrintStream getPrintStream() {return ps;}@Overridepublic void run() {try {while ((ReadLine = br.readLine()) != null) {if (ReadLine == "END") {break;}System.out.println(ReadLine);}} catch (IOException e) {e.printStackTrace();}}}
import java.io.PrintStream;public class SenderThread_A extends Thread {private PrintStream ps;private String Message = "";private boolean isRunning;public SenderThread_A(PrintStream ps) {this.ps = ps;isRunning = true;}public synchronized void sendMessage(String Message) {this.Message = Message;notify();}public boolean isRunning() {return isRunning;}public void setRunning(boolean isRunning) {this.isRunning = isRunning;notify();}@Overridepublic synchronized void run() {while (isRunning) {if (Message == "") {try {wait();} catch (InterruptedException e) {e.printStackTrace();}}if (Message == "") {break;} else {ps.println(Message);ps.flush();}Message = "";}}}
服务器端

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.ServerSocket;import java.net.Socket;public class ReceiverThread_B extends Thread {private ServerSocket serverSocket;private Socket socket;private BufferedReader br;private PrintStream ps;private String ReadLine = "";public ReceiverThread_B() {try {serverSocket = new ServerSocket(5698);} catch (IOException e) {e.printStackTrace();}}public PrintStream getPrintStream() {return ps;}@Overridepublic void run() {try {socket = serverSocket.accept();br = new BufferedReader(new InputStreamReader(socket.getInputStream()));ps = new PrintStream(socket.getOutputStream());} catch (IOException e1) {e1.printStackTrace();}try {while ((ReadLine = br.readLine()) != null) {if (ReadLine == "END") {break;}System.out.println(ReadLine);}} catch (IOException e) {e.printStackTrace();}}}