客户端和服务器是否需要使用同一端口进行连接? [英] Do client and server need to use same port to connect?

查看:107
本文介绍了客户端和服务器是否需要使用同一端口进行连接?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个使用Java的服务器-客户端程序,我试图用一个端口创建一个ServerSocket,而用不同的端口创建一个客户端Socket,但它们无法相互连接。客户端引发ConnectException。当我将客户端上的套接字更改为与我用于ServerSocket的套接字相同时,它们可以正常工作。

我从此线程Java Networking: Explain InputStream and OutputStream in Socket的asser了解到,如果计算机使用端口创建套接字,则该套接字将绑定到该计算机,那么为什么客户端和服务器需要使用相同的端口来相互连接?

另外,两个应用程序不能使用一台计算机上的同一端口,所以当两个具有相同端口的不同服务器和一台计算机需要通过两个不同的应用程序连接到这两个服务器时,会发生什么情况?

tcp

您需要对推荐答案通信有一些基本的了解。只需谷歌TCP教程。

简而言之,服务器将侦听特定端口。当服务器侦听某个端口时,它将绑定到该端口。一台计算机上只能有一个服务器(或进程)在侦听某个端口。

客户端将连接到计算机并指定要在其上通信的端口。如果服务器正在监听客户端请求的端口,则会发生通信。否则连接无法继续。

因此服务器绑定(或侦听)的端口必须与客户端指定的端口相同。

这篇关于客户端和服务器是否需要使用同一端口进行连接?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆