如何使用TCPIP与服务器进行通信

如何使用TCPIP与服务器进行通信,第1张

你这里所说的服务器是域名服务器,也就是我们常说的DNS服务器,通常DNS服务器解析不到IP地址,也就不能给你的网络分配一个网络地址,导致网络无法连接或不稳定而不能正常上网。通常DNS服务器都是根据你的网络自动生成的,这个可以询问你的网络营运商或直接把DNS服务器地址设置成自动获取,让网络自行分配。

同学您好,这个问题我分开解答哈!①单个用户与单个服务器通信采用Socket进行连接,用户方面的流程是:1新建套接字Socket s;2确定服务器IP地址和端口号 addr = 192168112 port = 8080;3对本机地址进行显式或隐式绑定(一般采用隐式绑定故这步可以忽略)4开启与服务器的连接connect(s,addr);5进行数据交互传输 send recv;6通信结束 关闭套接字closesocket(s);

服务器方面的流程是:1新建套接字Socket s;2确定本地IP和端口号(不能隐式绑定)addr = 192168112 port = 8080;3对本地IP和端口进行绑定bind(s,addr);4对端口进行监听listen(s);5接收一个连接 newsock = accept(s);6进行数据交互传输 send recv;7通信结束 关闭套接字closesocket(s)。

②单个服务器与多个用户的通信连接,用户端与①中流程相同,服务器端第5步接收了一个连接之后开始不同。服务器在接收了一个连接之后,便新建一个套接字newsock,此时要开启一个子线程来负责处理与该用户机的数据传输,而主线程继续监听端口创建新的子线程来与多个用户进行连接。C下可以采用createThread函数,

CreateThread( NULL,0,
                          chat, //子线程函数入口
                          &newsock, //传给子线程的参数
                          0, &Tid);然后在chat函数中进行recv和send即可

几个思路:
1、将220的IP地址加入到240的/etc/hosts文件中,看看从220上telnet 240能否变快,变快就解决了
2、我猜想,220和240应该属于不同的网段,需要通过路由器实现互通,检查220上的网关和路由设置,是否指向了不正确的IP;可以在240上使用traceroute检查到220的路由,看看最后1级网关是否与240上的设置一致,如果不一致将220的网关指向该地址
3、240所在网段应该还有其他主机,从220上traceroute其中一个活跃主机的IP,如果仍然慢那么就可以完全确认是路由器的问题(包括设置不当,迂回,循环等),而不是220的设置问题
3、220和240之间应至少存在2级路由器,是这些路由器上的路由关系有问题,那么需要从220的出口网关开始逐级登录检查,检查方法就是从这些路由器上检查到240的路由,是否与240的回程路由一致。当然,你必须有登录路由器的权限,否则应找网络管理员协助。将你的上述证明方法和结论告诉他,让他来改即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13420878.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-02
下一篇 2023-08-02

发表评论

登录后才能评论

评论列表(0条)

保存