江湖救济?
其实我的需求就是
server:
if(recfrom())
sendto(message);
client:
sendto("");
revfrom();//收到所谓的server确认信息。
//实际上是互发信息。我调拉一下,但是老是出错!!
**************************************************************************
这是我的server和Client 只能从Client 发向Server,现在请教大家怎样实现上面的功能。
server:
void main(void)
{
SOCKET s;
sockaddr_in from;
WSADATA wsdata;
WSAStartup(0x0202,&wsdata);
s=socket(AF_INET,SOCK_DGRAM,0);
from.sin_family = PF_INET;
from.sin_addr.s_addr = htonl(INADDR_ANY);
from.sin_port = htons(5050);
bind(s,(sockaddr *)&from,sizeof(sockaddr_in));
int fromlength=sizeof(SOCKADDR);
char buf[256];
while(1)
{
recvfrom(s,buf,256,0,(struct sockaddr FAR *)&from,(int FAR *)&fromlength);
Sleep(2000);
printf("%s\n",buf);
}
}
***********************************************************
Client:
#include<iostream.h>
#include<stdio.h>
#include<winsock2.h>
#pragma comment(lib,"ws2_32.lib")
int main()
{
SOCKET s;
sockaddr_in addrto;
WSADATA wsdata;
char *smsg="Hello World!";
WSAStartup(0x0202,&wsdata);
s=WSASocket(AF_INET,SOCK_DGRAM,0,NULL,0,WSA_FLAG_OVERLAPPED);
addrto.sin_family=AF_INET;
addrto.sin_addr.s_addr=inet_addr("192.168.1.51");
addrto.sin_port=htons(5050);
int nlen=sizeof(addrto);
while(1)
{
Sleep(1000);
int ret=sendto(s,smsg,256,0,(sockaddr*)&addrto,nlen);
if(ret==SOCKET_ERROR)
cout<<WSAGetLastError()<<endl;
else
{
printf("ok");
}
}
return 0;
}
***************************************************************