假设有两个socket
客户端socket 和服务器socket
客户端socket发送消息 服务器socket接受消息 然后服务器socket回消息 最后客户端socket接受回应
至此socket的生命周期应该结束了吧,如果客户端socket想根据服务器的回应信息继续通讯,是不是还要
重新建立socket,知道的请解释详细点,谢谢
客户端socket 和服务器socket
客户端socket发送消息 服务器socket接受消息 然后服务器socket回消息 最后客户端socket接受回应
至此socket的生命周期应该结束了吧,如果客户端socket想根据服务器的回应信息继续通讯,是不是还要
重新建立socket,知道的请解释详细点,谢谢
解决方案 »
- switch的小问题,在线等
- JAVA小问题,没有满意的答案,在发一次,请高人进来!谢谢
- 请问如何把excel的东西转换成html文档(最好有代码)
- 始终提示insert语句出错!!!急急急
- 计算String中subString的数量(线程)
- 刚学JAVA,遇到个问题,,,求各位大大帮帮忙
- 请问:如何查看栈内存和堆内存中的数据??就是如何通过某种方法看看这个数据是在堆中还是栈中?
- 关于用socket传递对象的问题
- 高分求小问题:applet中能不能访问其他服务器?
- javac命令能产生HelloWorld.class,但是用java HelloWorld却产生一个错误信息。请问该怎么办
- 菜鸟问
- 怎么在myEclipse中实现与数据库的连接?
在循环中accept(),接受一次信息后之后就睡眠,直到下一次在有数据后就唤醒线程。。然后在睡眠
(1) 创建Socket;
(2) 打开连接到Socket的输入/出流;
(3) 按照一定的协议对Socket进行读/写操作;
(4) 关闭Socket.
第三步是程序员用来调用Socket和实现程序功能的关键步骤,其他三步在各种程序中基本相同。
下面是一个典型的创建Server端ServerSocket的过程。
服务器端程序: MultiTalkServer.java import java.io.*;
import java.net.*;
import ServerThread;
public class MultiTalkServer{
static int clientnum=0; //静态成员变量,记录当前客户的个数
public static void main(String args[]) throws IOException {
ServerSocket serverSocket=null;
boolean listening=true;
try{
serverSocket=new ServerSocket(4700);
//创建一个ServerSocket在端口4700监听客户请求
}catch(IOException e) {
System.out.println("Could not listen on port:4700.");
//出错,打印出错信息
System.exit(-1); //退出
}
while(listening){ //永远循环监听
new ServerThread(serverSocket.accept(),clientnum).start();
//监听到客户请求,根据得到的Socket对象和
客户计数创建服务线程,并启动之
clientnum++; //增加客户计数
}
serverSocket.close(); //关闭ServerSocket
}
}以上的程序中总是让它不停的循环接收,一旦有客户请求,Server总是会创建一个服务线程来服务新来的客户,而自己继续监听。程序中accept()是一个阻塞函数,所谓阻塞性方法就是说该方法被调用后,将等待客户的请求,直到有一个客户启动并请求连接到相同的端口,然后accept()返回一个对应于客户的socket。这时,客户方和服务方都建立了用于通信的socket,接下来就是由各个socket分别打开各自的输入/输出流。