最近在做一个课设:基于Socket 的局域网聊天工具。请问服务器端和客户端是怎么通过IP地址找到对方的?
程序现在弄好了,但是不知道Server端是怎么通过Client端的IP地址与其连接的。Server端是怎么获取Client端的IP地址与端口号的?...
程序现在弄好了,但是不知道Server端是怎么通过Client端的IP地址与其连接的。
Server端是怎么获取Client端的IP地址与端口号的? 展开
Server端是怎么获取Client端的IP地址与端口号的? 展开
3个回答
展开全部
Server端不是要建立serversocket么,这个类会监听socket连接,客户端连接服务端的时候会携带本机(客户端)的ip,服务器接收连接,经过三次握手之后双方建立tcp连接,然后就可以通讯了,编写服务端的时候并不需要关心客户端发起连接的端口。
获取ip:socket.getInetAddress()
获取端口:socket.getPort();
获取ip:socket.getInetAddress()
获取端口:socket.getPort();
追问
三次握手具体是什么?
追答
三次握手(three times handshake;three-way handshaking)所谓的“三次握手”即对每次发送的数据量是怎样跟踪进行协商使数据段的发送和接收同步,根据所接收到的数据量而确定的数据确认数及数据发送、接收完毕后何时撤消联系,并建立虚连接。为了提供可靠的传送,TCP在发送新的数据之前,以特定的顺序将数据包的序号,并需要这些包传送给目标机之后的确认消息。
这是网上给的一个概念,简单的说就是为了确认连接
展开全部
TCP 的话 就是三次握手。
过程如下。 1 client 根据server的ip地址和端口号向server说: hello server.
2 server 从client传来的数据包获取client的ip地址和端口号响应一个:200 OK
3. client收到状态为200的响应后,开始请求服务器内容。 至此建立链接
UDP 原理:client不事先测试server状态,一开始往server发送数据包
server 收到了就回送数据包给client
socket 编程就是这两个原理。
过程如下。 1 client 根据server的ip地址和端口号向server说: hello server.
2 server 从client传来的数据包获取client的ip地址和端口号响应一个:200 OK
3. client收到状态为200的响应后,开始请求服务器内容。 至此建立链接
UDP 原理:client不事先测试server状态,一开始往server发送数据包
server 收到了就回送数据包给client
socket 编程就是这两个原理。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就像是PING工具一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询