实现UDP协议,socket编程,调用到windowsAPI,实现客户端和服务器
2015-04-05 19:14
686 查看
服务器部分:
利用socket
语言:C 语言
环境:可以编译的环境
代码如下:
利用socket
语言:C 语言
环境:可以编译的环境
代码如下:
#include <stdio.h> #include <stdlib.h> #include <winsock2.h> int main() { WSADATA wsaData; SOCKET RecvSocket; struct sockaddr_in RecvAddr; int port = 27015; char RecvBuf[1024]; int BufLen = 1024; int len =0; int flag = 0; FILE* fp; struct sockaddr_in SenderAddr; int SenderAddrSize = sizeof(SenderAddr); // WSAStartup(MAKEWORD(2, 2), &wsaData); RecvSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); RecvAddr.sin_family = AF_INET; RecvAddr.sin_port = htons(port); RecvAddr.sin_addr.s_addr = htonl(INADDR_ANY); // 用于多方面数据的接受,符合服务器的数据传输的模式 if(bind(RecvSocket, (SOCKADDR* )&RecvAddr, sizeof(RecvAddr))< 0){ printf("Error: bind failed!\n"); exit(1); } printf("Receving datagrams ... \n"); for(; ; ){ static int count = 0; static int fileNum = 0; char filenameTmp[20]; len = recvfrom(RecvSocket, RecvBuf, BufLen, 0, (SOCKADDR* )&SenderAddr, &SenderAddrSize); sendto(RecvSocket, RecvBuf, BufLen, 0, (SOCKADDR* )&SenderAddr, &SenderAddrSize); //printf("Data Success, and sended!"); RecvBuf[len] = '\0'; // 此处的判断是为了文件接收的转换的情况, 注意加强自身的对UDP 协议的理解; if(strcmp(RecvBuf, "file send -- 123")==0){ fileNum++; sprintf(filenameTmp, "receive%d.txt", fileNum); fp = fopen(filenameTmp, "a+"); printf("file will received\n"); flag = 1; }else if(strcmp(RecvBuf, "file sended -- 123")==0){ printf("file have received!\n"); fclose(fp); flag = 0; }else{ if(flag == 1){ count++; fprintf(fp ,"%s\t",RecvBuf); if((count%5)== 0){ fprintf(fp ,"\n"); } }else{ printf("Received Data: %s\n", RecvBuf); } } } printf("Finished receiving. Closing socket. \n"); closesocket(RecvSocket); // 销毁套接字, 逻辑严密性 printf("Exiting.\n"); return 0; }
相关文章推荐
- 网络编程(6)—— 基于Windws系统的UDP协议socket服务器和客户端
- Socket编程 消息传送 UDP协议(窗口实现) 客户端
- 网络编程(5)—— 基于Linux系统的UDP协议socket服务器和客户端
- Java网路编程____UDP协议Socket客户端服务器聊天室列子
- Socket编程 消息传送 UDP协议(窗口实现) 服务器
- 【网络编程笔记】简单的TCP协议 socket编程(C语言版服务器和客户端)
- linux udp协议服务器,客户端socket使用
- 【python】网络编程-SocketServer 实现客户端与服务器间非阻塞通信
- 【Qt5开发及实例】30、实现客户端的编程,UDP协议
- java使用多线程编程,实现socket服务器客户端交互
- Android中socket编程实现简单的客户端和服务器之间的通信
- java中进行socket编程实现tcp、udp协议总结
- 简单的TCP协议 socket编程(C语言版服务器和客户端)
- 在Java中实现UDP协议编程(DatagramSocket/DatagramPacket)
- loadunner使用socket协议来实现多客户端连接同一服务器脚本(使用到IP欺骗技术)
- 客户端服务器基于Socket的UDP和TCP编程介绍
- socket编程:简单UDP服务器/客户端编程
- 简单的TCP协议 socket编程(C语言版服务器和客户端)
- 在Java中实现UDP协议编程(DatagramSocket/DatagramPacket)
- Android 使用Socket实现服务器与手机客户端的长连接四:使用回调函数与Service调用