我正在使用UDP在VC++(服務器)中編寫文件傳輸應用程序。我在winsock2中瞭解到,有一些在文件傳輸中很有用的功能。有誰能夠幫助我。我還在尋找一個winsock2的TransmitPackets示例應用程序,但不是gettng。請幫幫我。謝謝。如何在winsock2中編寫TransmitPackets函數?
0
A
回答
0
http://www.mycplus.com/source-code/c-source-code/udp-sender-and-receiver/
http://www.winsocketdotnetworkprogramming.com/winsock2programming/winsock2advancedcode1e.html
http://msdn.microsoft.com/en-us/library/ms740566%28VS.85%29.aspx
下面是示例應用程序和源代碼,這將幫助你。
編輯:
以下是發送函數取字符串,字符串的大小,IP地址和端口,並通過UDP發送數據包。
int sender(char cSendBuffer[], int iBufferSize, char cIP[], int iPort)
{
WSADATA wsaData;
WSAStartup(MAKEWORD(2,2), &wsaData);
char cBroadcast = '1';
int iNumBytes = 0;
struct sockaddr_in their_addr;
struct hostent *he;
SOCKET sock;
sock = socket(AF_INET,SOCK_DGRAM,0);
if(setsockopt(sock,SOL_SOCKET,SO_BROADCAST,&cBroadcast,sizeof(cBroadcast)) < 0)
{
printf("\n ----------------------------------------- \n");
printf("Error in setting UDP option");
printf("\n ----------------------------------------- \n");
return 0;
}//End if
their_addr.sin_family = AF_INET;
their_addr.sin_port = htons(iPort);
//Target IP
their_addr.sin_addr.s_addr = inet_addr (cIP);
int iSentBytes =0;
//Send bytes through socket
iSentBytes = sendto(sock,cSendBuffer, iBufferSize,0,(sockaddr*)&their_addr,sizeof(their_addr));
if(iSentBytes < 0)
{
printf("\n ----------------------------------------- \n");
printf("Data Sending Error");
printf("\n ----------------------------------------- \n");
closesocket(sock);
return 0;
}//End if
else
{
printf("\n ----------------------------------------- \n");
printf("\n Data sent successfully to AT PORT:%d AND IP:%s \n",iPort,cIP);
printf("\n ----------------------------------------- \n");
}//End else
closesocket(sock);
WSACleanup();
return 1;
}//End Function For Sending Packet
以下是UDP的接收功能。
int UDPReceiver(void)
{
char cRecievedBuffer[TRACK_BUFFER_SIZE];
WSADATA wsaData;
WSAStartup(MAKEWORD(2,2), &wsaData);
SOCKET sock;
sock = socket(AF_INET,SOCK_DGRAM,0);
// my address information
struct sockaddr_in my_addr;
// connector's address information
struct sockaddr_in their_addr;
//sizeof (ANSI C function)
int len = sizeof(struct sockaddr_in);
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(MYPORT);
//Automatically fill with my IP
my_addr.sin_addr.s_addr = INADDR_ANY;
if (bind(sock,(sockaddr*)&my_addr, sizeof (my_addr)) < 0)
{
printf("\n ----------------------------------------- \n");
printf(" Error in BINDING ");
printf("\n ----------------------------------------- \n");
return 0;
}//End if
while(recvfrom(sock,cRecievedBuffer,TRACK_BUFFER_SIZE,0,(sockaddr *)&their_addr,&len))
{
//Your Decoder code
}
}
0
+0
鏈接只有答案是不鼓勵的。至少在答案中增加一個摘要。 – jgauffin 2014-11-07 10:59:28
相關問題
- 1. 如何在SparkR中編寫函數?
- 2. 如何在Pig中編寫函數?
- 3. 如何在c#中編寫ajax函數#
- 4. 如何在coffeescript中編寫此函數
- 5. 如何在C中編寫函數?
- 6. 如何在JavaScript中編寫SQL函數?
- 7. 如何在Python中編寫函數
- 8. 如何在Golang中編寫isNumeric函數?
- 9. 如何在Haskell中編寫showIt函數?
- 10. 如何在PureScript中編寫函數?
- 11. 如何在loadrunner中編寫Web_custom_request()函數
- 12. 如何在scala中編寫函數isSymbol?
- 13. 如何在python中編寫函數?
- 14. 如何在prolog中編寫unflatten函數?
- 15. 如何在bash_profile中編寫函數
- 16. 如何在Python中編寫函數
- 17. 如何編寫php函數
- 18. 如何編寫saveTable函數?
- 19. 如何編寫SQL函數
- 20. 如何編寫函數?
- 21. 在Java中編寫函數?
- 22. 在Prolog中編寫函數
- 23. 在Chainer中編寫函數
- 24. 如何編寫在C++中使用其他函數的函數
- 25. 如何在SAP HANA中將workdays_between函數編寫爲表函數?
- 26. 如何在C編寫一個函數
- 27. 如何在函數內編寫facet_wrap(ggplot2)
- 28. 如何編寫一個函數在Python
- 29. 如何在列表中編寫函數計數字母數?
- 30. 如何在函數中編寫一個Traversable實例,在Haskell中?
感謝指導俄德。我遵循你所說的方式。 – 2010-08-02 12:00:17