📄 main.cpp
字号:
#include <unistd.h>#include <sys/socket.h>#include <stdio.h>#include <arpa/inet.h>#include <string.h> int main(){ struct sockaddr_in servaddr; struct sockaddr_in clientaddr; int listenfd, connfd; char recvbuff[1024] = ""; char sendbuff[1024] = ""; int recvlen = 0; socklen_t len1 = 0; int i = 0; unsigned short type = 0x01; long long userid = 10021; long result = 0; unsigned short sendlen = 0; memset(&servaddr, 0, sizeof(servaddr )); memset(&clientaddr, 0, sizeof(clientaddr )); memcpy( sendbuff, &type, sizeof(type)); sendlen += sizeof(type); memcpy( sendbuff + sendlen, &userid, sizeof(userid)); sendlen += sizeof(userid); memcpy( sendbuff + sendlen, &result, sizeof(result)); sendlen += sizeof(result); char buff[256] = ""; unsigned char packtype = 0; bool needreply = 1; unsigned char nettype = 0; unsigned short packseri = 1; socklen_t len = 0; memcpy( buff, &sendlen, sizeof(sendlen)); len += sizeof(sendlen); memcpy( buff + len, sendbuff, sendlen ); len += sendlen; memcpy( buff + len, &packseri, sizeof( packseri)); len += sizeof( packseri ); memcpy( buff + len, &packtype, sizeof( packtype )); len += sizeof( packtype ); memcpy( buff + len, &needreply, sizeof( needreply )); len += sizeof( needreply ); memcpy( buff + len, &nettype, sizeof( nettype )); len += sizeof( nettype); listenfd = socket( AF_INET, SOCK_DGRAM, NULL ); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr = htonl(INADDR_ANY); servaddr.sin_port = htons(8812); if( bind(listenfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) < 0 ) return -1; listen(listenfd, 5); for(;;) { memcpy( buff + 16, & packseri, sizeof(packseri)); packseri++; //printf("begin to recv...\n"); // recvlen = recvfrom( listenfd, recvbuff, 1024, NULL, (struct sockaddr*)&clientaddr, &len1 ); // printf("my recv data, data len: %d\n", len1 ); // for(i = 0; i< recvlen; i++) // printf("%02x ", recvbuff[i]); // // printf("\nmy send data, data len: %d\n", len); for( i = 0; i < 100; i++ ) printf("%02x ", buff[i]); clientaddr.sin_addr.s_addr = inet_addr("10.218.17.1"); for(int lll = 0;lll < 100; lll++) { printf("\n send addr: %s\n", inet_ntoa( clientaddr.sin_addr )); if( sendto( listenfd, buff, 50, NULL, (struct sockaddr*)&clientaddr, len1 ) == -1 ) clientaddr.sin_addr.s_addr++; printf("send error"); printf("send over!!!\n"); //sleep(1); } } return 0; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -