socket 编程 connect ()的问题求教!

swen96 2007-01-18 11:28:42
本人在AIX写了段SOCKET SERVER程序,运行之后,察看了端口状态为LISTEN,server端程序也运行到了accept()了,但client死活都连不上去,提示“Connection refused”,用telnet也测试了服务端口,同样是“Connection refused”,有哪位高手碰到过类似的这种情况吗?告诉我一下解决的办法,不胜感激!被折磨的快崩溃了...... 帮帮我!
...全文
239 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xfzhao_cn 2007-01-18
  • 打赏
  • 举报
回复
首先确认firewall没有启动,然后在client端抓包分析是否握手的数据正确的
mikeandmore 2007-01-18
  • 打赏
  • 举报
回复
自己对吧。。。



/*
* A test for anaylise the HTTP
* @author Mike
*/

#include <iostream>
#include <cerrno>
#include <cstdlib>
#include <unistd.h>

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>

#define PORT 8081
#define MAXMSG 512
#define MAXQUE 3

using namespace std;

int sock = 0;

void* DoResponse(void* data)
{
char* buffer = new char[MAXMSG];
int nbyte = MAXMSG;
int client = int(data);
cout << "==============================================" << endl;
do
{
nbyte = read(client, buffer, MAXMSG);
cout << buffer;
}while(nbyte > 0);
delete buffer;
}

void CreateThread(int client)
{
pthread_t pid;
int ret = pthread_create(&pid, NULL, &DoResponse, (void*)client);
if(ret != 0)
{
cout << "Thread Creation Error\n";
return;
}
}

int main(int argc,char* argv[])
{
sockaddr_in name;
sockaddr_in clientname;

sock = socket(PF_INET, SOCK_STREAM, 0);
if(!sock)
cout << "Error when Creating Server Socket.\n";

name.sin_family = AF_INET;
name.sin_port = htons(PORT);
name.sin_addr.s_addr = htonl(INADDR_ANY);

if(bind(sock, (const sockaddr*)&name, sizeof(name)) == -1)
cout << "Error when Binding Server Socket.\n";

if(listen(sock, MAXQUE) == -1)
cout << "Error when Listening.\n";

while(true)
{
fd_set fd;
FD_ZERO(&fd);
FD_SET(sock, &fd);
if(select(FD_SETSIZE, &fd, NULL, NULL, NULL) == -1)
cout << "Selecting Error\n";

socklen_t size;
int client_sock = accept(sock, (sockaddr*)&clientname, &size);
if(client_sock == -1)
{
cout << "Error when Accepting.\n";
continue;
}
CreateThread(client_sock);
}

cout << "Server Exiting...\n";

return 0;
}
mikeandmore 2007-01-18
  • 打赏
  • 举报
回复
可怜,可怜,我在学ace。。。
swen96 2007-01-18
  • 打赏
  • 举报
回复
问题解决了!原来是路由限制了端口,因为开发机放在外网上!谢谢各位!结贴,怎么给分呀?我都不知道呢
playmud 2007-01-18
  • 打赏
  • 举报
回复
代码呢
swen96 2007-01-18
  • 打赏
  • 举报
回复
确认没有firewall,感谢各位的回复!问题依然没有解决...

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧