社区
其它技术问题
帖子详情
SOCKET网络 在先线等待 100分 不够再给
sh_liyu98
2005-02-04 03:09:32
利用SOCKET API 写了一个网络程序
在192.168.1.XXX 的网段运行正常 但是把网络配置到10.0.1.XXX子网掩码是255.255.248.0 DNS服务器IP地址是10.0.0.2 SOCKET 不能正确的连接 在SOCKET的连接的时候有什么相关的设置吗?
...全文
171
12
打赏
收藏
SOCKET网络 在先线等待 100分 不够再给
利用SOCKET API 写了一个网络程序 在192.168.1.XXX 的网段运行正常 但是把网络配置到10.0.1.XXX子网掩码是255.255.248.0 DNS服务器IP地址是10.0.0.2 SOCKET 不能正确的连接 在SOCKET的连接的时候有什么相关的设置吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
goodluckyxl
2005-02-05
打赏
举报
回复
端口占用了
somedummy
2005-02-04
打赏
举报
回复
给点详细的信息行不?譬如哪个函数调用失败了,WSAGetLastError显示什么?
sh_liyu98
2005-02-04
打赏
举报
回复
看看是不是还需要增加其他的设置
sh_liyu98
2005-02-04
打赏
举报
回复
int CClientSocket::ConnectServer(const char* cIP,int nPort)
{
//创建新套接字
m_netSocket.socket=socket(AF_INET,SOCK_STREAM,0);
//准备服务器的信息,这里指定的是服务器的地址
m_netSocket.sockAddress.sin_family = AF_INET;
m_netSocket.sockAddress.sin_addr.S_un.S_addr = inet_addr(cIP);
m_netSocket.sockAddress.sin_port = htons(nPort);
int nRet=-2;
nRet=connect(m_netSocket.socket,(struct sockaddr FAR*)&m_netSocket.sockAddress,sizeof(m_netSocket.sockAddress));
if(nRet == SOCKET_ERROR)
{
OutPutLastError();
OutputDebugString("connect failed!\n");
return nRet ;
}
return nRet;
}
int CServerSocket::InitServer(int nPort,int nCount)
{
int nRet=Blind(nPort);
if(nRet!=SOCKET_ERROR)
{
nRet=Listen(nCount);
}
return nRet;
}
int CServerSocket::Blind(int nPort)
{
////创建新的流套接字
m_netSocket.socket = socket(AF_INET,SOCK_STREAM,0);
m_netSocket.sockAddress.sin_family = AF_INET;
m_netSocket.sockAddress.sin_addr.S_un.S_addr = INADDR_ANY;
m_nPort=nPort;
m_netSocket.sockAddress.sin_port = htons(m_nPort);
//绑定一个套接字到本机地址(服务器端)
int nRet=bind(m_netSocket.socket,(struct sockaddr FAR*)&m_netSocket.sockAddress,sizeof(m_netSocket.sockAddress));
if (nRet == SOCKET_ERROR )
{
OutPutLastError();
OutputDebugString("bind failed!!");
closesocket(m_netSocket.socket);
m_bFlagScoket=FALSE;
return nRet;
}
OutputDebugString(STR_BLIND_MSG);
m_bFlagScoket=TRUE;
return nRet;
}
/////////////////////////////////////////////////////////////////////////////////////////
//
// Function name : CServerSocket::Listen
//
// Description :
//
// Return type :
//
// Effect type :
//
// Parameter : int nCount
//
/////////////////////////////////////////////////////////////////////////////////////////
int CServerSocket::Listen(int nCount)
{
if(m_bFlagScoket==FALSE)
return -1;
int nRet = 1;
// ret = listen(m_netSocket.socket,5);
nRet = listen(m_netSocket.socket,nCount);
if(nRet == SOCKET_ERROR)
{
OutPutLastError();
OutputDebugString("listen error!\n");
m_bFlagScoket=FALSE;
return nRet;
}
m_bFlagScoket = TRUE;
return nRet;
}
这是连接的代码
sh_liyu98
2005-02-04
打赏
举报
回复
网关是默认的没有动
但是还是不行
somedummy
2005-02-04
打赏
举报
回复
这个似乎没有问题吧?你监听的是不是现在的IP上的端口?如果你设置的监听的地址不是INETADDR_ANY的话,那么要正确设置你的IP才行。
另外你有没有设置正确的路由?如果几台机器虽然IP在一个子网,但实际上并没有路径可以到达的话,还是不行的,要设置缺省网关才行
iceworld819
2005-02-04
打赏
举报
回复
不在一个网段啊
sh_liyu98
2005-02-04
打赏
举报
回复
好 我看看 了
oo
2005-02-04
打赏
举报
回复
如果你确信 telnet 端口号 能成功连接,
但用你的程序不能连接,那把连接部分的代码贴出来
yjh1982
2005-02-04
打赏
举报
回复
要在一个子网才能连接吧.
检查一下这个么.
sh_liyu98
2005-02-04
打赏
举报
回复
网络是好的
后面没有带防火墙 现在测试的环境是
电脑直接和HUB连接
oo
2005-02-04
打赏
举报
回复
socket跟这些没啥关系。
可能是后面一个网络的防火墙关闭了端口。
你可以用 telnet 端口号
来测试一下网络是不是好的。
Socket
网络
编程
简单的
网络
编程案例,
socket
套接字编程
windows
socket
网络
引擎
适用于windows
网络
开发的服务端和客户端
网络
引擎代码示例,采用标准3线程设计
socket
通信
android
socket
通信例子见图书《Android游戏编程之从零开始》
android
Socket
通信方法与思路
android
Socket
通信方法与思路
基于python的
socket
实现单机五子棋到双人对战
主要为大家详细介绍了基于python的
socket
实现单机五子棋到双人对战,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
其它技术问题
3,882
社区成员
9,045
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章