最近在做一个课设:基于Socket 的局域网聊天工具。请问服务器端和客户端是怎么通过IP地址找到对方的?

程序现在弄好了,但是不知道Server端是怎么通过Client端的IP地址与其连接的。Server端是怎么获取Client端的IP地址与端口号的?... 程序现在弄好了,但是不知道Server端是怎么通过Client端的IP地址与其连接的。
Server端是怎么获取Client端的IP地址与端口号的?
展开
 我来答
markbruce2
2012-12-11 · TA获得超过1555个赞
知道小有建树答主
回答量:925
采纳率:50%
帮助的人:617万
展开全部
Server端不是要建立serversocket么,这个类会监听socket连接,客户端连接服务端的时候会携带本机(客户端)的ip,服务器接收连接,经过三次握手之后双方建立tcp连接,然后就可以通讯了,编写服务端的时候并不需要关心客户端发起连接的端口。

获取ip:socket.getInetAddress()
获取端口:socket.getPort();
追问
三次握手具体是什么?
追答
三次握手(three times handshake;three-way handshaking)所谓的“三次握手”即对每次发送的数据量是怎样跟踪进行协商使数据段的发送和接收同步,根据所接收到的数据量而确定的数据确认数及数据发送、接收完毕后何时撤消联系,并建立虚连接。为了提供可靠的传送,TCP在发送新的数据之前,以特定的顺序将数据包的序号,并需要这些包传送给目标机之后的确认消息。

这是网上给的一个概念,简单的说就是为了确认连接
天空丶有点蓝
2012-12-15 · 超过24用户采纳过TA的回答
知道答主
回答量:123
采纳率:0%
帮助的人:56.3万
展开全部
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 编程就是这两个原理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ad7c819
2012-12-11 · TA获得超过148个赞
知道小有建树答主
回答量:456
采纳率:63%
帮助的人:109万
展开全部
就像是PING工具一样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式