user-0 提问: socket客户端里connect内存冲突 

回复:
user: user-1
content: 崩溃的时候在弹出的对话框按相应按钮进入调试，按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处，看不懂时双击下一行，直到能看懂为止。

user: user-2
content: 引用 11 楼 q980764821 的回复:[quote=引用 8 楼 adlay 的回复:] [quote=引用 7 楼 q980764821 的回复:] [quote=引用 4 楼 www_adintr_com的回复:]10061 是目标机器对应的端口没打开，连接不上 端口我在防火墙里设置打开了 但是netstat -查了并没有那个端口   有影响么？     现在还是连不上    10061[/quote] 不光是防火墙打开，得有进程打开了这个端口，在这个端口上等待连接才行的。[/quote]   我服务器端一直开着的啊  还有什么可能会出错吗[/quote]  那你先试下在命令行中   telnet  服务器IP   服务器端口 看是否能连接上，如果不能就是服务器的问题，可以才是客户端的问题。 （如果提示找不到 telnet 命令，在控制面板，添加删除程序，系统组件 里面把  telnet 客户端 选上）    另外，如果你要连本机的话，直接用 127.0.0.1 的 IP 就行了。 如果你是要连 iiiiii.imwork.net 这个域名，你的代码是错的，gethostname 会把名字填成本机的。

user: user-3
content: 客户端与服务端要对照着看一下。 检查端口打开没有。

user: user-2
content: 10061 是目标机器对应的端口没打开，连接不上

user: user-0
content: 引用 8 楼 adlay 的回复:[quote=引用 7 楼 q980764821 的回复:] [quote=引用 4 楼 www_adintr_com的回复:]10061 是目标机器对应的端口没打开，连接不上 端口我在防火墙里设置打开了 但是netstat -查了并没有那个端口   有影响么？     现在还是连不上    10061[/quote] 不光是防火墙打开，得有进程打开了这个端口，在这个端口上等待连接才行的。[/quote]   我服务器端一直开着的啊  还有什么可能会出错吗

user: user-0
content: //****************************客户端***********************************  #pragma warning(disable: 4996) #include<stdio.h> #include<stdlib.h> #include<WinSock2.h> #pragma comment(lib,"ws2_32.lib") void main() { 	WSADATA wsadata; 	int iResult = WSAStartup(MAKEWORD(2, 2), &wsadata); 	if (iResult != NO_ERROR) 		printf("Error at WSAStartup()\n");  	char name[33] = "iiiiii.imwork.net"; //定义用于存放获得的主机名的变量   	char *ip; //定义IP地址变量   	PHOSTENT hostinfo; 	if (gethostname(name, sizeof(name)) == 0) {  		if ((hostinfo = gethostbyname(name)) != NULL) {  			ip = inet_ntoa(*(struct in_addr *)*hostinfo->h_addr_list);   		} 	} 	printf("%s", ip);    	SOCKET server; 	server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); 	if (server == INVALID_SOCKET){ 		printf("Error at socket():%1d"); 		WSACleanup(); 		return; 	}  	SOCKADDR_IN clientService; 	clientService.sin_family = AF_INET; 	clientService.sin_addr.s_addr = inet_addr(ip); 	clientService.sin_port = htons(27015);  	if (connect(server, (SOCKADDR*)&clientService, sizeof(SOCKADDR)) == SOCKET_ERROR){ 		printf("Failed to connect: %d\n", GetLastError()); 		getchar();  		WSACleanup(); 		closesocket(server);  		return; 	}  这代码比之前的代码多了一个域名解析      因为这帖子在网上查的到所以把域名改了下  。   请问可能会是什么原因呢 ？

user: user-0
content: 引用 1 楼 adlay 的回复:printf("Error at socket():%1d");   %ld 的输出没有给参数  printf("Failed to connect: %s\n",GetLastError());  GetLastError 返回的是整数，用 %d 来输出，不是 %s    谢谢 改成%d管了 但是能不能帮我帮到底下 。。现在connect代码10061  可能是什么原因

user: user-0
content: 后面我回追加30分给大家  希望大家帮我下  。

user: user-0
content: 10061为目标端口的话  引用 5 楼 user-3 的回复:客户端与服务端要对照着看一下。 检查端口打开没有。  我在同一台机子上运行两程序   。27015 端口我在防火墙里打开了 我netstat看了下端口没有27015    运行后还是10061   可能是什么情况呢  。

user: user-2
content: 引用 7 楼 q980764821 的回复:[quote=引用 4 楼 www_adintr_com的回复:]10061 是目标机器对应的端口没打开，连接不上 端口我在防火墙里设置打开了 但是netstat -查了并没有那个端口   有影响么？     现在还是连不上    10061[/quote] 不光是防火墙打开，得有进程打开了这个端口，在这个端口上等待连接才行的。

user: user-0
content: 引用 4 楼 www_adintr_com的回复:10061 是目标机器对应的端口没打开，连接不上 端口我在防火墙里设置打开了 但是netstat -查了并没有那个端口   有影响么？     现在还是连不上    10061

user: user-2
content: printf("Error at socket():%1d");   %ld 的输出没有给参数  printf("Failed to connect: %s\n",GetLastError());  GetLastError 返回的是整数，用 %d 来输出，不是 %s