我测试了服务器 OnAccept() 到的 CSocket ,我发现 CSocket::m_hSocket 对于任何一个CSocket 的Connect() 都不同,另外 OnAccept() 中得到的 SOCKADDR_IN.sin_port 为何与实际端口号不一致?
请高手赐教!!! 不胜感激!!!
请高手赐教!!! 不胜感激!!!
解决方案 »
- MFC CString GetFtpConnection参数 错误
- CListBox問題
- 调试时涉及ATL相关错误,请高手指教!!
- vc中如何获得一个汉字的拼音的首字母,有源码吗?如何将搜索到的结果按首字的拼音的首字母排序啊?
- 求高手帮忙打包一个图书馆数据库软件.....明天就交,学来不及了!!!万分感谢
- clist control问题?
- VC中头文件都是怎样产生的?
- 为何有实例句柄这个概念?一个程序运行了多次用窗口句柄区分它们不就行了?
- 我想问一些问题,可以吗?
- RichEditCtrl中段落对齐方式的问题
- 初学者求救:MFC中CView::OnMouseMove里面如何判断鼠标是左移还是右移啊?
- 大家看一下,为什么按W,U键,为什么我VK_F8,VK_F6会有反映
你自己指定的客户端端口吗?都相同不冲突?
OnAccept() 中得到的 SOCKADDR_IN.sin_port 是 对方连接你后,你得到的对方的信息。
我建立了一个服务监听程序:
// 大致如下,只是示意并不是精确的源码// 服务器
CListen:public CSocket{}
CListen listen;
listen.Create(6000);// 端口号
listen.Listen();
listen.OnAccept()
{
CSocket *p;
SOCKADDR_IN in;
// 接收客户端联接
// SOCKADDR_IN.sin_port 不是 6000 ? }// 客户端
CSocket s;
s.Create();
s.Connet("127.0.0.1", 6000,....);请高手指点,服务器端 SOCKADDR_IN.sin_port 怎末不是 6000 ???!!!
谢谢,各位的热心参与!!!
谢谢!!!
你客户端创建的CSocket 没有指定端口号 你程序里面只是让他连接服务器的6000端口
同时你服务器的6000端口上的监听CSocket也接收到了这个CSocket请求 至于客户端的端口号当然不会是6000