socket通信为什么要指定端口(socket通信)

      最后更新:2022-11-09 14:56:10 手机定位技术交流文章

      server socket为什么要绑定ip地址和端口

      Server socket是指网络通信中的服务器端套接字(一种文件句柄,就像普通的文件句柄一样,是唯一),在网络编程中,通信双方必须有一方是服务器端(Server),另一方是客户端(Client),而服务器端进行通信是需要借助于套接字(socket)的,这个套接字必须绑定有IP地址和端口号,因为是“服务器”,必然客户端想要访问你,就需要知道你的IP地址是什么?端口号是多少(计算机中有很多端口存在,所以必须指定一个端口用来监听(listen))?不知道你的IP地址,客户端怎么去访问找到你服务器?对吧? 可以将套接字理解成一种特殊的文件(其实在Linux世界中一切皆文件),对这个文件进行读写,就是所谓的接收发送啦(用特定的函数:send/revc等)。
      server socket为什么要绑定ip地址和端口

      socket通信时,远程端口是1863,本地端口是1863吗?

      本地端口的选择是系统自动选的,可以在程序中指定。如果不指定的话,就要看你的操作系统了。与远端端口无关。
      这个是内核自动帮你选择的。你也可以用bind自己设置端口或者外出接口
      socket通信时,远程端口是1863,本地端口是1863吗?

      网络间的通信需要ip以及端口,那么socket又是干嘛的呢

      socket是插座,就是用有线连接的方式保证网络间的通信。比如计算机的网络插座socket,就是用网线将计算机与计算机之间连接起来。
      网络间的通信需要ip以及端口,那么socket又是干嘛的呢

      SOCKET通信中客户端如何先绑定端口再连接?

      俺有两个疑问: 1、不同于服务端,客户端在一台机器来上可以有多个程序连接到服务端的,服务端必须源用固定的端口,但客户端如何确定它当前可以使用的端口?唯一的办法就是你的程序先查出未被本机使用的端口,但这样做还不如让系统来给百你分配个端口,然后再绑定。再者,TCP连接中,连接建立的过程你该清度楚的。 2、为啥非要绑定端口呢?
      SOCKET通信中客户端如何先绑定端口再连接?

      为什么UDP发送和接收的端口号必须一致?

      这是通讯协议规定的。网络通讯中,IP地址+端口才能唯一标识一个真实的通讯地址。就像是现实中如果写信给一个人,发信人必须写清楚省市区和邮箱号,收件知人有同一个邮箱的钥匙才能收到信一样。客户端不需要固定端口,客户端发送消息时应该由UdpClient自动选择可用的端口。服务器不可能向NAT内部的客户端主动发起消息,必须等客户端发送消息,然后赶紧发送返回值。因为NAT路由器只会为Udp消息的这种回发规则维护一个较短时间,在这个较短时间上由外部发来的消息才能被路由器正确转发给内部。扩展资料UDP是OSI参考模型中一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成,提供面向事务的简单不可靠信息传送服务。UDP 协议基本上是IP协议与上层协议的接口。UDP协议适用端口分别运行在同一台设备上的多个应用程序。UDP提供了无连接通信,且不对传送数据包进行可靠性保证,适合于一次传输少量数据,UDP传输的可靠性由应用层负责。常用的UDP端口号有:应用协议 端口号DNS 53TFTP 69SNMP 161
      UDP在外网通信时,需要由内网客户端向外网(独立IP,不经过路由)的服务器发出消息,内网路由会打开一个洞,短时间允许外网目标ip和目标端口往回发消息,否则外网的消息发不到内网的电脑上,直接被路由扔了。所以 对于服务器来说,哪个端口接收的,就要用哪个端口发回来,还得尽快发,否则内网路由就把洞堵住了。外网再发消息,或者不是“原路返回”的消息,统统被丢掉。。。。所以伱收不到啦。 同样,路由会把返回的消息转发到客户端ip指定的端口上,如果端口不一样的话,伱的客户端也收不到。。。
      DatagramSocket用于接收和发送UDP的Socket实例。该类有3个构造函数:DatagramSocket():通常用于客户端编程,它并没有特定监听的端口,仅仅使用一个临时的。程序会让操作系统分配一个可用的端口。DatagramSocket(int port):创建实例,并固定监听Port端口的报文。通常用于服务端。
      这是通讯协议规定的。 网络通讯中,IP地址+端口才能唯一标识一个真实的通讯地址。就像是现实中如果写信给一个人,发信人必须写清楚省市区和邮箱号,收件人有同一个邮箱的钥匙才能收到信一样。IP地址指明了具体的计算机,就像是发信时指明了小区的楼号 而端口指明了具体的收信人,就像邮箱指明同一栋楼(同一计算机)里的具体哪个门牌号一样。
      没这个说法, 只是,如果你不指定监听端口号的话,客户端怎么监听?服务器端又如何知道要返回给客户端哪个端口呢? 一般情况下,服务器端根据客户端的端口号返回的,比如客户端使用1024发送到服务器端的80端口,那么服务器端接收后返回到客户端哪个端口呢?所以还是返回1024最好。
      为什么UDP发送和接收的端口号必须一致?

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/44240.html

          热门文章

          文章分类