连接建立了,语言C++。前端是用cocos2d封装好的。
目前是:客户端向服务端send:服务端能接到;服务端向客户端send:客户端能接到。
但是:客户端向服务端send,服务端接到后立即应答向客户端send,客户端就接不到。
代码如下:
客户端:(在一个按钮中触发)
gksock->connect_(5500,"127.0.0.1");
struct gksakura
{
int a;
char b[32];
};
struct gksakura gk;
ZeroMemory(&gk,sizeof(gk));
gk.a=32;
strcpy(gk.b,"matousakura");
char ans[64];
ZeroMemory(ans,sizeof(ans));
auto errcode =gksock->send((char*)&gk,128);
if (errcode!=SOCKET_ERROR)
{
CCLOG("!!!!!!!!!!!!!!!!!!!!!!!!!");
gksock->recv(ans,128);
CCLOG("%s",ans);
}
gksock->close();
服务端:
while(1)
{
SOCKET sClient=accept(sServer,(SOCKADDR*)&addrclient,&addrclientlen);printf("accetp ing!\n");
if (sClient==INVALID_SOCKET)
{
printf("accept failed!\n");
break;
}
struct gksakura
{
int a;
char b[32];
};
struct gksakura gk;
ZeroMemory((char*)&gk,sizeof((char*)&gk));
char ans[]="get it!";
errcode=recv(sClient,(char*)&gk,128,0);printf("recv ing!\n");
if (errcode==SOCKET_ERROR)
{
printf("recv failed!\n");
closesocket(sClient);
break;
}
else
{
printf("%d\n%s\n",gk.a,gk.b);
printf("want to send %s\n",ans);
errcode=send(sClient,ans,128,0);printf("send ing!\n");
if (errcode==SOCKET_ERROR)
{
printf("send failed!\n");
closesocket(sClient);
break;
}
}
closesocket(sClient);
}
closesocket(sServer);printf("close!\n");
WSACleanup();