我们还是从计算机的网络层说起,主要是分为7个层分别是物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。
数据之间的交互主要在传输层这一块。通常用到的底层协议有TCP和UDP这两种协议。通过中间层SOCKET协议,进行包装,再往上就是我们经常用到的>
>
1创建套接字
2向服务器发送连接请求(connect)
3通信(send/recv)
4关闭套接字
>服务器端步骤
1创建用于监听的套接字(socket)
2将套接字绑定到本地地址和端口上(bind)
3将套接字设为监听模式(listen)
4等待客户请求(accept),此处要不断的调用accept
5通信(send/receive),完成后返回4
6关闭套接字(closesocket)
谢谢阅读,欢迎在线咨询
我觉得有人告诉你说端口号和IP号不能相同应该是指两个及其以上客户端的情况下吧比如说你用你的电脑登陆两个QQ因为是用同一条网线所以IP地址一样所以这时数据通过的端口就必须不一样。一个服务端和客户端是要端口号一样才能传输的。建立多个线程就ok了 为每一个连接 创建一个线程去处理while (true)
{
// 得到包含客户端信息的套接字
Socket client = serverAccept();
//创建消息服务线程对象
ClientThread newclient = new ClientThread(client);
//把ClientThread 类的ClientService方法委托给线程
Thread newthread = new Thread(new ThreadStart(newclientClientService));
// 启动消息服务线程
newthreadStart();
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)