socket客户端里connect内存冲突,该如何解决

socket客户端里connect内存冲突
//****************************客户端***********************************

#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");


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("192.168.1.1");
clientService.sin_port = htons(8080);

if (connect(server, (SOCKADDR*)&clientService, sizeof(SOCKADDR)) ==SOCKET_ERROR){
printf("Failed to connect: %s\n",GetLastError());

WSACleanup();
              closesocket(server);

return;
}
/*  不知道是什么原因 */socket客户端里connect内存冲突,该如何解决
------解决思路----------------------
客户端与服务端要对照着看一下。
检查端口打开没有。
------解决思路----------------------
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。

------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:
10061 是目标机器对应的端口没打开,连接不上

端口我在防火墙里设置打开了 但是netstat -查了并没有那个端口   有影响么?     现在还是连不上    10061

不光是防火墙打开,得有进程打开了这个端口,在这个端口上等待连接才行的。



我服务器端一直开着的啊  还有什么可能会出错吗


那你先试下在命令行中  
telnet  服务器IP   服务器端口
看是否能连接上,如果不能就是服务器的问题,可以才是客户端的问题。
(如果提示找不到 telnet 命令,在控制面板,添加删除程序,系统组件 里面把  telnet 客户端 选上)


 另外,如果你要连本机的话,直接用 127.0.0.1 的 IP 就行了。
如果你是要连 iiiiii.imwork.net 这个域名,你的代码是错的,gethostname 会把名字填成本机的。