怎么指定客户端的端口去连服务??? 我现在需要指定一个客户端的端口(比如30000)来连接服务,这个怎么实现啊???一般都是自己分配的,没见过自己指定的! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 struct sockaddr_in server_addr;struct sockaddr_in client_addr;; struct hostent *host; if((serSocket=socket(AF_INET,SOCK_STREAM,0)) == -1) { mylog("创建Socket发生错误!"); return -1; } if((host=gethostbyname(SERVER_ADDR)) == NULL) { mylog("调用gethostbyname错误,地址:[%s]!",SERVER_ADDR); return -1; }intflag=1;setsockopt(serSocket,SOL_SOCKET,SO_REUSEADDR,(char *)&flag,sizeof(int));client_addr.sin_family = AF_INET; client_addr.sin_port = htons(4567); client_addr.sin_addr.s_addr = INADDR_ANY;if(bind(serSocket,(struct sockaddr *)&client_addr,sizeof(client_addr)) == -1) {mylog("绑定错误");return -1; } server_addr.sin_family = AF_INET; server_addr.sin_port = htons(SERVER_PORT); server_addr.sin_addr = *((struct in_addr *)host->;h_addr); bzero(&server_addr.sin_zero,8); if(connect(serSocket,(struct sockaddr *)&server_addr,sizeof(server_addr))==-1) { mylog("连接服务器发生错误,地址:[%s]",SERVER_ADDR); return -1; } 我试了好象不行啊,服务收到的还是随机端口!下面这句我没加,有关系吗??setsockopt(serSocket,SOL_SOCKET,SO_REUSEADDR,(char *)&flag,sizeof(int)); SOCKADDR_IN结构体里面指定端口啊 to:whl3390大哥你看清楚问题 好了可以了,谢谢一楼的朋友!但现在执行一遍程序再CONNECT就返回-1,给过一会再执行才可以,这是咋会事啊??? 要重新连吗? 要closesocket之后再连吧。。 Installsheield打包VC6程序,实在没多少分了,这问题困扰我两天了,帮帮忙 发布开源皮肤组件库FreeCL 2.01版 CString 转为std::string在VS2005 release下报错怎么办 有关VC中调用PHP的问题 vc++6.0對文件操作問題!!!高手指教,急!急!急! ASC码->BYTE?转换 不好意思,提一个傻帽型的问题. 求助VB寫ocx控件的一個問題!!! 进来聊聊````` 关于MFC读取access问题,请大家帮帮忙!!! 插入数据时出错 MFC大菜鸟的疑问--关于图标和日期
struct sockaddr_in client_addr;;
struct hostent *host; if((serSocket=socket(AF_INET,SOCK_STREAM,0)) == -1)
{
mylog("创建Socket发生错误!");
return -1;
} if((host=gethostbyname(SERVER_ADDR)) == NULL)
{
mylog("调用gethostbyname错误,地址:[%s]!",SERVER_ADDR);
return -1;
}intflag=1;
setsockopt(serSocket,SOL_SOCKET,SO_REUSEADDR,(char *)&flag,sizeof(int));client_addr.sin_family = AF_INET;
client_addr.sin_port = htons(4567);
client_addr.sin_addr.s_addr = INADDR_ANY;
if(bind(serSocket,(struct sockaddr *)&client_addr,sizeof(client_addr)) == -1)
{
mylog("绑定错误");
return -1;
} server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(SERVER_PORT);
server_addr.sin_addr = *((struct in_addr *)host->;h_addr);
bzero(&server_addr.sin_zero,8);
if(connect(serSocket,(struct sockaddr *)&server_addr,sizeof(server_addr))==-1)
{
mylog("连接服务器发生错误,地址:[%s]",SERVER_ADDR);
return -1;
}
下面这句我没加,有关系吗??
setsockopt(serSocket,SOL_SOCKET,SO_REUSEADDR,(char *)&flag,sizeof(int));
大哥你看清楚问题
但现在执行一遍程序再CONNECT就返回-1,给过一会再执行才可以,这是咋会事啊???