62,614
社区成员
发帖
与我相关
我的任务
分享
package myCS;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class MyServer {
/**
* @param args
*/
public static void main(String[] args) {
try {
//建立Server Socket并等待连接请求
ServerSocket server = new ServerSocket(1680);
Socket socket = server.accept();
//连接建立,通过Socket获取连接上的输入/输出流
BufferedReader in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream());
//创建标准输入流,从键盘接收数据
BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));
/*先读取Client 发送的数据,
* 然后从标准输入读取数据发送给Client当接收到bye时关闭连接
*/
String s;
while (!(s=in.readLine()).equals("bye")) {
System.out.println("# 接收自客户端: "+s); //===>此处接收自客户端的s为什么 不能打印呢?(就这一个疑问)
out.println(sin.readLine());
out.flush();
}
System.out.println("正在关闭连接... ...");
//关闭连接
in.close();
out.close();
socket.close();
server.close();
} catch (Exception e) {
System.out.println("错误:"+e);
}
}
}
package myCS;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class MyClient {
/**
* @param args
*/
public static void main(String[] args) {
try {
Socket socket = new Socket("127.0.0.1",1680); //发出连接请求
//连接建立,通过Socket获取连接上的输入/输出流
PrintWriter out = new PrintWriter(socket.getOutputStream());
BufferedReader in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
//创建标准输入流,从键盘读取数据
BufferedReader sin = new BufferedReader(
new InputStreamReader(System.in));
//从标准输入中读取一行,发生Server端,当用户输入bye时结束连接
String s;
do {
s=sin.readLine();
out.println();
out.flush();
if (! s.equals("bye")) {
System.out.println("@服务器端响应:"+in.readLine());
} else {
System.out.println("正在关闭连接... ...");
}
} while (! s.equals("bye"));
//关闭连接
out.close();
in.close();
socket.close();
} catch (Exception e) {
System.out.println("错误: "+e);
}
}
}