返回信息流编写一个java语言程序,利用socket,完成A端和B端的网络通信功能
A B
Hello
Hello
Who are you
I am Mary
logout logout
这是一条镜像帖。来源:北邮人论坛 / java / #12897同步于 2010/1/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
大牛请进, 请教问题
wbg111
2010/1/6镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class SayHello {
public static void main(String args[]) {
new Thread(new SocketA()).start();
new Thread(new SocketB()).start();
}
}
class SocketA implements Runnable {
public void run() {
try {
//throw new UnsupportedOperationException("Not supported yet.");
ServerSocket ss = new ServerSocket(8888);
Socket s = ss.accept();
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
bw.write("hello\n");
bw.flush();
System.out.println(br.readLine());
bw.write("Who are you \n");
bw.flush();
System.out.println(br.readLine());
br.close();
bw.close();
s.close();
ss.close();
System.out.println("A logout");
} catch (IOException ex) {
Logger.getLogger(SocketA.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
class SocketB implements Runnable {
public void run() {
try {
// throw new UnsupportedOperationException("Not supported yet.");
Socket s = new Socket("localhost", 8888);
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
System.out.println(br.readLine());
bw.write("Hello \n");
bw.flush();
System.out.println(br.readLine());
bw.write("I am Mary\n");
bw.flush();
br.close();
bw.close();
s.close();
System.out.println("B logout");
} catch (UnknownHostException ex) {
Logger.getLogger(SocketB.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(SocketB.class.getName()).log(Level.SEVERE, null, ex);
}
}
}