2 it newbies IT_newbies 于 2016.02.25 17:57 提问

C#客户端应用程序第一次连接服务器的端口号该如何设置或获取

我做的毕业设计是有服务器的局域网聊天室 我的客户端是要放在不同的电脑上的(这些电脑都在局域网里 而且有台电脑作为服务器)下面问题来了 客户端第一次连接服务器的端口号应该如何设置或获取,我之所以这样问是因为第一次连接以后,服务器可以通过第一次建立的”通道“为客户端分配端口号(服务器里有个方法是获取服务器可用的端口号,当客户端需要新的端口号时可以通过第一次的”通道“向服务器发送请求,然后服务器返回可用端口号)
问题就出在第一次的端口号哪来 如果设置8080假如两个客户端同时登录都是8080端口会出现什么问题可想而知
.........................................................我是一个新手 这个设计思路都是我自己想的 如果连这个思路都是错的或者有更好的办法来解决端口问题请大神指教

2个回答

caozhy
caozhy   Ds   Rxr 2016.02.25 18:15
已采纳

不会有问题的,http服务器的端口号都是80,你见过web服务器同时有几个人访问就访问不了的么?

caozhy
caozhy 回复IT_newbies: 当然可以。所谓端口唯一是指,你的服务器端一个程序监听一个端口
2 年多之前 回复
IT_newbies
IT_newbies 下面我又有问题了如果那样岂不是我的所有的客户端所有的连接都可以连一个服务器端口 如果可以的话那阁下建议我这样做吗 或者不可以的话为什么
2 年多之前 回复
enpterexpress
enpterexpress   Rxr 2016.02.25 20:48
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
服务器如何给多个客户端分配端口号
服务器端在连接多个客户端时,如何分配端口号?是使用监听的端口号还是随机分配一个?
根据客户端套接字获取客户机的IP和端口号,其形式为IP:port
char *sock_ntop(const struct sockaddr *sa, socklen_t salen) { char portstr[7]; static char str[128]; switch (sa->sa_family) { case AF_INET: { struct sockaddr_in *sin = (struct sockaddr
C# 使用Socket实现服务器与客户端的通信
一. 实验要求 1.设计程序,分别构建通信的两端:服务器端和客户端应用程序,套接字类型为面向连接的Socket,自己构建双方的应答模式,实现双方的数据的发送和接收(S发给C,C 发给S)。 2.服务端程序能响应单个或任意多个客户端连接请求:服务端能向单个客户发送消息,支持群发消息给所有客户端。 3.通信的双方具备异常响应功能,包括对方异常退出的处理。如果客户端退出,服务器有响应,反之亦然。
在WCF服务中获取客户端的IP地址和端口号
版权声明请尊重原创作品。转载请保持文章完整性,并以超链接形式注明原始作者“tingsking18”和主站点地址,方便其他朋友提问和指正。 using System;using System.ServiceModel;using System.ServiceModel.Channels;namespace WcfService3{ // 注意: 如果更改此处
c#中获取主机名和端口
string server_name = context.Request.ServerVariables["SERVER_NAME"]; //主机名             string host = context.Request.Url.Host; //主机名             string dns= context.Request.Url.DnsSafeHost; //主机名  
linux TCP客户端指定端口号连接服务端
Linux下面貌似没有什么直接开启或者关闭端口的命令,因为若仅仅只是开启了端口而不把它与进程相联系的话,端口的开启与关闭就显得毫无意义了(开了端口却没有程序处理进来的数据)。也就是说,Linux里面端口的活动与进程是紧密相连的,如果想要关闭某个端口,那么只要杀掉它对应的进程就可以了。   客户端代码 点击(此处)折叠或打开 #include stdio.h> #inclu
tcp客户端connect server后,本地端口如何获得
http://bbs.csdn.net/topics/330064930 socket fd = socket(AF_INET, SOCK_STREAM, 0);  struct sockaddr_in client_addr; client_addr.sin_family = AF_INET; client_addr.sin_addr.s_addr = htons(INADD
服务器无法访问应用程序目录。该目录不存在或因为安全设置而无法访问。
最近刚将一台老服务器(win2000)上的部分程序迁移到新的服务器(win2003),发现采用asp.net的页面报如下错误“服务器无法访问应用程序目录“x:/xxx/”。该目录不存在或因为安全设置而无法访问。” 此目录我已设置ASPNET用户权限,为何会出现权限报错信息?经查得知:执行ASP.NET页面在Win2000和WinXP下,默认账户是ASPNET,Win2003下,默认账户则是NETW
服务器与客户端进程之间端口号联系
服务器和客户端都有端口号,但是,服务器的端口号是重要的,因为客户端只有了解了服务器的地址和端口号,才可以连接到它(即使是采用UDP传输数据,也需要指定发送目标的地址和端口号);而客户端的端口号是无关紧要的,一般由操作系统自动分配。     服务端怎么知道和客户端的哪个进程连接???     --------------------------------------------------
通过远程连接socket得到客户端的IP和连接端口
TCP:通过远程连接socket得到客户端的IP和连接端口SOCKETacceptSock;acceptSock = accept(listenSock, NULL, NULL); SOCKADDR_IN   sockAddr; int   iLen=sizeof(sockAddr); getpeername(acceptSock ,(struct   sockaddr   *)&sockAddr,&iLen);//得到远程IP地址和端口号  注意函数参数1:此处是接受连接