![]() |
![]() |
![]() |
|||||
![]() |
![]() |
![]() |
![]() |
![]() |
|||
| Welcome
to Tech Support Forum home to more then 136,000 problems solved. Issues
have included: Spyware, Malware, Virus Issues, Windows, Microsoft,
Linux, Networking, Security, Hardware, and Gaming Getting your
problem solved is as easy as: 1. Registering for a free account 2. Asking your question 3. Receiving an answer Registered members: * See fewer ads. * And much more..
|
| Want to know how to post a question? click here | Having problems with spyware and pop-ups? First Steps |
|
|||||||
| Web Design & Programming Discussion of web design, and server-side & client-side scripting |
![]() |
|
|
Thread Tools |
|
|
#1 (permalink) |
|
Registered User
Join Date: May 2008
Posts: 3
OS: win XP
|
PLZ help me to find out the problem
Hi!
actually i try to build a simple UDP client server that sends and receives the messages. there is no error in the code complie time but some run time error such as the broadcast messages are not send and received properly. someone can help me to find out the problem in the following code. server and client both are in seperate files and run seperately on the same machine using winxp SP2. -----------------------------Server code #include"winsock2.h" #include<iostream> #include<conio.h> using namespace std; int main() { WSADATA wsaData; WSAStartup(MAKEWORD(2,2), &wsaData); char sendbuff[] = "Broadcast Message"; SOCKET sock; sock = socket(AF_INET,SOCK_DGRAM,0); sockaddr_in server_addr; sockaddr_in client; int portnum = 9009; char recvbuff[50]; int recvbufflen = 50; int len = sizeof(struct sockaddr_in); int val = 1; setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,(char*)&val, sizeof(int)); setsockopt(sock,SOL_SOCKET,SO_BROADCAST,(char*)&val, sizeof(int)); server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = htonl(INADDR_BROADCAST); server_addr.sin_port = htons(portnum); bind(sock,(sockaddr*)&server_addr,sizeof(struct sockaddr)); setsockopt(sock,SOL_SOCKET,SO_BROADCAST,(char*)&val, sizeof(int)); recvfrom(sock,recvbuff,recvbufflen,0,(sockaddr*)&client,&len); sendto(sock,sendbuff,strlen(sendbuff)+1,0,(sockaddr*)&client,len); cout<<"\n\n\t\tReceived data : "<<recvbuff; cout<<"\n\n\tpress any key to CONT..."; _getch(); closesocket(sock); WSACleanup(); } ------------------Client code-------------- #include"winsock2.h" #include<iostream> #include<conio.h> using namespace std; int main() { WSADATA wsaData; WSAStartup(MAKEWORD(2,2), &wsaData); char sendbuff[] = "Broadcast Message"; SOCKET sock; sock = socket(AF_INET,SOCK_DGRAM,0); sockaddr_in server_addr; int portnum = 9009; char recvbuff[50]; int recvbufflen = 50; int len = sizeof(struct sockaddr_in); char ip[] = "127.0.0.1"; server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = INADDR_ANY; server_addr.sin_port = htons(portnum); int val=1; int sentbytes=0; if((setsockopt(sock,SOL_SOCKET,SO_BROADCAST,(char*)&val, sizeof(int)))== SOCKET_ERROR) cout<<"setsockopt() failed"; sentbytes = sendto(sock,sendbuff,strlen(sendbuff)+1,0,(sockaddr*)&server_addr,len); recvfrom(sock,recvbuff,recvbufflen,0,(sockaddr*)&server_addr,&len); cout<<"\n\n\tpress any key to CONT..."<<recvbuff; _getch(); closesocket(sock); WSACleanup(); } |
|
|
|
![]() |
| Thread Tools | |
|
|