我在做Socket通讯的问题,本意是想在通讯中换端口绑定,请问如何实现
即:
IPEndPoint EndPointA = new IPEndPoint(IPAddress.Paser("127.0.0.1"), 5000);
IPEndPoint EndPointB = new IPEndPoint(IPAddress.Paser("127.0.0.1"), 5111);
m_Socket.Bind(EndPointA);
m_Socket.Listen(10);
AccSock = m_Socket.Accept();
bool a = m_Socket.Connected;// 为什么 a = false
m_Socket.Bind(EndPointB);// 这句出错,请问有没有办法改端口号
即:
IPEndPoint EndPointA = new IPEndPoint(IPAddress.Paser("127.0.0.1"), 5000);
IPEndPoint EndPointB = new IPEndPoint(IPAddress.Paser("127.0.0.1"), 5111);
m_Socket.Bind(EndPointA);
m_Socket.Listen(10);
AccSock = m_Socket.Accept();
bool a = m_Socket.Connected;// 为什么 a = false
m_Socket.Bind(EndPointB);// 这句出错,请问有没有办法改端口号
解决方案 »
- 初学者疑惑
- 求个会做魔兽显血改键的大大...
- winform开发,各窗口继承同一个父类窗口(希望有实际运用经验的来谈谈利弊)
- 如何用一个remoting去连接另一个remoting
- 求助:如何在asp.net中实现鼠标右键自定义菜单
- 晕倒:调试时出现怪问题?是不是我的机子有问题啊?谢谢!!!
- 如何添加同一个项目内的用户控件到windows窗体中啊?
- 怎么建立一个内存graphics画好一个图片再拷到你的窗口画面?
- 一个准备学习C#.net的菜鸟。
- 如何在winform中获得某个web页在客户端浏览器的输出内容?
- DATASET的问题紧急
- 错误提示“重载“Remove”方法未获取“1”参数”,大家帮忙看看错在哪
?
to bool a = m_Socket.Connected;// 为什么 a = false这当然是false,你只是绑定本机的ip和端口,有没有去连接。to m_Socket.Bind(EndPointB);// 这句出错,请问有没有办法改端口号重新new一个。
AccSock = m_Socket.Accept();
只是接受一个Socket请求而已,即别的机器发送到你机器端口的信息;看你这段代码来说,是服务器端部分,因此对于服务器端来说,没有连接之说。to 2对于一个socket对象来说,同时只能监听一个端口,你像换一个端口,去产生一个新的socket对象来完成,或者关闭原有的,然后再重新绑定。
我在 5000(端口号)上Accept的端口,对方(客户机)的Socket的RemoteEndPoint属性中(端口号为5000),然后我把监听的端口Close()销毁,这时Accept()出来的端口还是可以通讯的。我关键想知道,端口号与Socket对象是不是要求一对一,即一个本地端口号,是否只能对应一个Socket对象。