我正在使用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. 如何在Python中编写函数
- 2. 如何在Haskell中编写showIt函数?
- 3. 如何在prolog中编写unflatten函数?
- 4. 如何在C中编写函数?
- 5. 如何在Golang中编写isNumeric函数?
- 6. 如何在scala中编写函数isSymbol?
- 7. 如何在PureScript中编写函数?
- 8. 如何在python中编写函数?
- 9. 如何编写函数?
- 10. 如何编写php函数
- 11. 如何编写saveTable函数?
- 12. 如何编写SQL函数
- 13. 在Java中编写函数?
- 14. 在Prolog中编写函数
- 15. 在Chainer中编写函数
- 16. 如何在SAP HANA中将workdays_between函数编写为表函数?
- 17. 如何编写在C++中使用其他函数的函数
- 18. 如何在函数内编写facet_wrap(ggplot2)
- 19. 如何在CoffeeScript中使用模数编写交替行函数?
- 20. 如何在J中编写三列数字的函数?
- 21. 如何在后台代码中编写c#中的JavaScript函数?
- 22. 如何在Javascript中的原型函数中编写递归函数?
- 23. 如何在sql server中查找中间记录并编写函数新函数?
- 24. 如何为此编写javaScript函数?
- 25. 如何为ede编写定位函数
- 26. 我不懂如何编写display_items函数
- 27. 如何编写自定义函数CNTK
- 28. 如何用Observable编写函数?
- 29. 如何为Zapier编写回调函数
- 30. 如何编写此函数C
感谢指导俄德。我遵循你所说的方式。 – 2010-08-02 12:00:17