socket 分客户端和服务端
客户端:Socket socket= new Socket(ip,端口号);
服务段: ServerSocket server = new ServerSocket(端口号);
应该是监听同一个端口
流应该是有很种,你该根据你的需要来定。
客户端:Socket socket= new Socket(ip,端口号);
服务段: ServerSocket server = new ServerSocket(端口号);
应该是监听同一个端口
流应该是有很种,你该根据你的需要来定。
在服务端建立一个监听,等待客户端的连接。
ServerSocket server = new ServerSocket(端口号);//端口号就是绑定的监听端口号
while(true){
Socket socket = server.accept(); //利用一个死循环实现不间断的监听.如
//果监听到客户端的连接请求,则得到一
//socket对象。这时候可以进行数据的读
//取等操作
…
}客户端:
Socket socket= new Socket(ip,port); //ip是服务端的ip,port是服务端绑定的监
//听端口
… //发送等…这样就可以实现楼主的要求了
2、要重复当然需要循环。
服务器端应该是在建立服务器socket之后。用循环不断获取客户的信息,进行相应的操作。最后关闭服务器端的socket.
客户端:也要在建立socket之后,只要根据你的输入信息来作相应的循环就可以了。
再次,循环监听
for (;;)
{
Socket nextClient = server.accept(); // 得到一个客户端
OutputStream out = nextClient.getOutputStream(); 客户端的输出流
PrintStream pout = new PrintStream(out); // 用于回显给客户信息
pout.print(new java.util.Date()); // 客户可以看到服务器端当前日期
out.flush();
out.close();
nextClient.close();
}
启动好Server之后,启动Client
Socket client = new Socket(hostname, 7777);
client.setSoTimeout(2000);
BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream())); // 封装输入流的缓冲读取器
reader.readLine(); // 读取服务器端回显的信息大致过程就是这样了,也就是说,每次客户端向服务器端请求一次,服务器端就会回显一个日期给客户。
while(true)
{
Socket client = new Socket(hostname, 7777);
client.setSoTimeout(2000);
PrintWriter pw = new PrintWriter(client.getOutputStream());
pw.println("*****");}