while (1) { char buffer[1024]="\0"; printf("waiting for message from others-------------\n"); if (recvfrom(socket1,buffer,sizeof(buffer),0,(struct sockaddr*)&from,&fromlen)!=SOCKET_ERROR) { printf("Received datagram from %s--%s\n",inet_ntoa(from.sin_addr),buffer); sendto(socket1,buffer,sizeof(buffer),0,(struct sockaddr*)&from,fromlen);} 这段程序什么意思啊
你上面的代码都没有错,但是你没有设置该套子节为广播类型,你在上面加上: bool opt=true; //设置该套接字为广播类型, setsockopt(sockClient,SOL_SOCKET,SO_BROADCAST,(char FAR *)&opt,sizeof(opt)); 就可以发送udp数据包了!你试试看!
int len;
CUDPSocketDlg Client;
addrClient.sin_addr.S_un.S_addr=inet_addr("127.0.0.1"); addrClient.sin_family=AF_INET;
Client.m_cstrAimPort=htons(3389);
cstrMsg.Format(_T("%s"),m_cstrInfo);
sendto((UINT)sockClient,(char*)(cstrMsg.GetBuffer(10)),len,0,(sockaddr*)&addrClient,sizeof(sockaddr));
//sendto(m_pSocket,(char*)cstrMsg,len,0,(sockaddr*)&addrClient,sizeof(sockaddr)); closesocket(sockClient);
这样子 就可以发送程序包了吗
然后就可以向对方绑定的端口和IP发送数据了。
绑定在创建socket之后在发送和接收之前进行。
{
char buffer[1024]="\0";
printf("waiting for message from others-------------\n");
if (recvfrom(socket1,buffer,sizeof(buffer),0,(struct sockaddr*)&from,&fromlen)!=SOCKET_ERROR)
{
printf("Received datagram from %s--%s\n",inet_ntoa(from.sin_addr),buffer);
sendto(socket1,buffer,sizeof(buffer),0,(struct sockaddr*)&from,fromlen);}
这段程序什么意思啊
bool opt=true;
//设置该套接字为广播类型,
setsockopt(sockClient,SOL_SOCKET,SO_BROADCAST,(char FAR *)&opt,sizeof(opt));
就可以发送udp数据包了!你试试看!