ABA


"בעיה עם הקמת UDP Client/Server"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #10148 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10148
עידן_הכלי

   23:00   17.11.10   
אל הפורום  
  בעיה עם הקמת UDP Client/Server  
 
   ערכתי לאחרונה בתאריך 17.11.10 בשעה 23:04 בברכה, עידן_הכלי
 
אהלן חבר'ה,

אני מנסה לממש Client/Server שמקבל בקשה בUDP אבל משום מה זה לא מצליח.
אני גם לא מצליח להסניף את התעבורה של האפליקציה שלי כדי להבין אם מדובר בבעיה ב Client או ב Server.

בכל מקרה, המצב הוא שהקליינט מודיע על כך שהוא שלח את המידע בהצלחה והסרבר נשאר תקוע כאילו לא קיבל אף מידע.

הנה הקוד (לקחתי מתוך MSDN):

****Server****


#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>
#include <windows.h>
#pragma comment(lib, "Ws2_32.lib")

void main() {

WSADATA wsaData;
SOCKET RecvSocket;
sockaddr_in RecvAddr;
int Port = 27015;
char RecvBuf;
int BufLen = 1024;
sockaddr_in SenderAddr;
int SenderAddrSize = sizeof(SenderAddr);

//-----------------------------------------------
// Initialize Winsock
WSAStartup(MAKEWORD(2,2), &wsaData);

//-----------------------------------------------
// Create a receiver socket to receive datagrams
RecvSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

//-----------------------------------------------
// Bind the socket to any address and the specified port.
RecvAddr.sin_family = AF_INET;
RecvAddr.sin_port = htons(Port);
RecvAddr.sin_addr.s_addr = htonl(INADDR_ANY);

bind(RecvSocket, (SOCKADDR *) &RecvAddr, sizeof(RecvAddr));

//-----------------------------------------------
// Call the recvfrom function to receive datagrams
// on the bound socket.
printf("Receiving datagrams...\n");
recvfrom(RecvSocket,
RecvBuf,
BufLen,
0,
(SOCKADDR *)&SenderAddr,
&SenderAddrSize);

//-----------------------------------------------
// Close the socket when finished receiving datagrams
printf("Finished receiving. Closing socket.\n");
closesocket(RecvSocket);

//-----------------------------------------------
// Clean up and exit.
printf("Exiting.\n");
WSACleanup();
return;
}


****Client****


#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>
#include <windows.h>

#pragma comment(lib, "Ws2_32.lib")

void main() {

WSADATA wsaData;
SOCKET SendSocket;
sockaddr_in RecvAddr;
int Port = 27015;

char* SendBuf = "Hello";
int BufLen = strlen(SendBuf);

//---------------------------------------------
// Initialize Winsock
WSAStartup(MAKEWORD(2,2), &wsaData);

//---------------------------------------------
// Create a socket for sending data
SendSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

//---------------------------------------------
// Set up the RecvAddr structure with the IP address of
// the receiver and the specified port number.
RecvAddr.sin_family = AF_INET;
RecvAddr.sin_port = htons(Port);
RecvAddr.sin_addr.s_addr = inet_addr("10.0.0.2");

//---------------------------------------------
// Send a datagram to the receiver
printf("Sending a datagram to the receiver...\n");
int sent = sendto(SendSocket,
SendBuf,
BufLen,
0,
(SOCKADDR *) &RecvAddr,
sizeof(RecvAddr));

printf("Total %d bytes sent.\n",sent);
//---------------------------------------------
// When the application is finished sending, close the socket.
printf("Finished sending. Closing socket.\n");
closesocket(SendSocket);

//---------------------------------------------
// Clean up and quit.
printf("Exiting.\n");
WSACleanup();
return;
}



אשמח לעזרתכם במציאת הבאג.

תודה,
עידן.


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  תתעלמו זה פתאום התחיל לעבוד.. מוזר :) עידן_הכלי 17.11.10 23:19 1
     זה כי אתה כלי.. Nesher  18.11.10 00:41 2
         חחח זה כינוי עוד מלפני האקסלוסיבי.. הייתי בן 13 בערך עידן_הכלי 18.11.10 15:55 3
             :) Nesher  18.11.10 21:03 4

       
עידן_הכלי

   23:19   17.11.10   
אל הפורום  
  1. תתעלמו זה פתאום התחיל לעבוד.. מוזר :)  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Nesher  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 2.7.02
2 הודעות, 24 פידבק
   00:41   18.11.10   
אל הפורום  
  2. זה כי אתה כלי..  
בתגובה להודעה מספר 1
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
עידן_הכלי

   15:55   18.11.10   
אל הפורום  
  3. חחח זה כינוי עוד מלפני האקסלוסיבי.. הייתי בן 13 בערך  
בתגובה להודעה מספר 2
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Nesher  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 2.7.02
2 הודעות, 24 פידבק
   21:03   18.11.10   
אל הפורום  
  4. :)  
בתגובה להודעה מספר 3
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net