Java Socket编程
饶了一晚上 总算绕明白了 可能我开始理解就是个错误
废话不多说 开写
客户端
- 1.建立套接字
2.建立连接
3.通信
4.关闭IO流 *
服务器端
- 1.建立套接字
2.监听
3.建立连接
4.通信
5.关闭IO流
服务器端代码
try {
//建立套接字 端口号9988
ServerSocket server=new ServerSocket(9988);
//监听 (如果有客户端访问 择创建socket对象 没有就一直为等待状态)
Socket socket=server.accept();
//获取客户端的InputStreamReader对象
InputStreamReader reader=new InputStreamReader(socket.getInputStream());
BufferedReader br=new BufferedReader(reader);
//通过printWriter对象写给客户端
PrintWriter pout=new PrintWriter(socket.getOutputStream());
//读取客户端传来的数据
String readline=br.readLine();
System.out.println("client:"+readline);
if(readline.equals("Bye")){
//发送给服务器
pout.println("ByeBye");
pout.flush();
}
else{
pout.println("HelloWorld");
pout.flush();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
客户端代码
try {
//建立套接字
Socket socket =new Socket("localhost",9988);
//服务器端返回回来的InputStreamReader对象
InputStreamReader re=new InputStreamReader(socket.getInputStream());
BufferedReader br=new BufferedReader(re);
//客户端写入的InputStreamReader对象
InputStreamReader re1=new InputStreamReader(System.in);
BufferedReader br1=new BufferedReader(re1);
//通过PrintWrite对象写入到socket中
PrintWriter pout=new PrintWriter(socket.getOutputStream());
pout.println(br1.readLine());
pout.flush();
//读服务器端返回的InputStreamReader
String line=br.readLine();
System.out.println("server11:"+line);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}