1、TCP Socket编程实现服务器和客户端的交互:
(1)服务器端先运行,利用循环时刻为客户端提供服务;
(2)客户端与服务器接通后,从键盘上输入若干字符(若客户端发送“end”字符串,服务器终止程序),传到服务器,服务器在控制台显示所收到的数据,形式为:”I have received ******”,并向客户端 反馈信息“Message from Server is:******”,此次通话结束;
(3)客户端接收来自服务器端的数据,在控制台显示:“Client has received .............“。
import java.io.*;
import java.net.*;
public class Main{
public static void main(String[] args)throws Exception{
ServerSocket ss=new ServerSocket(3234);
Socket client=ss.accept();
BufferedReader br=new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter pw=new PrintWriter(client.getOutputStream(),true);
String message;
while((message=br.readLine())!=null){
System.out.println("I have received "+message);
if(message.equals("end")) break;
pw.println("message from server is "+message);
}
client.close();
ss.close();
}
}
import java.io.*;
import java.net.*;
//客户端
public class Main{
public static void main(String[] args)throws Exception{
Socket socket=new Socket("localhost",4545);
BufferedReader userInput=new BufferedReader(new InputStreamReader(System.in));
BufferedReader serverInput=new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter toserver=new PrintWriter(socket.getOutputStream(),true);
String message;
while((message=userInput.readLine())!=null){
if(message.equals("end")) break;
toserver.println("message from client "+message);
}
String responce;
while((responce=serverInput.readLine())!=null){
if (responce.equals("end")) break;
System.out.println("client have received "+responce);
}
socket.close();
userInput.close();;
serverInput.close();
}
}
浙公网安备 33010602011771号