⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 omc_c_last1.c

📁 本文是基于Linux的udp协议的简单网络编程。能实现简单的收发数据功能。
💻 C
字号:
/*最终的程序,加上了‘把输出的内容写到文件’这一部分*/#include<sys/types.h>#include<sys/socket.h>#include<stdio.h>#include<netinet/in.h>#include<arpa/inet.h>#include<unistd.h>#include<string.h>#include<netdb.h>#define LOCAL_SERVER_PORT 8092#define MAX_MSG 100int main(int argc, char *argv[]){  int s, rc, i, n, j, k ;  struct sockaddr_in cliAddr,remoAddr,recevAddr;  char msg[MAX_MSG];  char msg1[3];  FILE *fp;  int strlen=3;   s=socket(AF_INET, SOCK_DGRAM, 0);  if(s<0)  {    printf("%s:cannot open socket\n",argv[0]);    exit(1);  }   remoAddr.sin_family=AF_INET;   remoAddr.sin_port=htons(LOCAL_SERVER_PORT);   remoAddr.sin_addr.s_addr=inet_addr("192.168.2.222");   k=0x04;      fp=fopen("res.txt","w+");   if(fp==NULL)   {     printf("cannot open a file");     exit(1);   }   for(i=0;i<5;i++)   {    memset(msg1,0,30);    memcpy(msg1,&strlen,2);    msg1[2]=k;    k++;  //printf("%02x\n%02x\n%02x\n",msg1[0],msg1[1],msg1[2]);    rc=sendto(s, msg1,sizeof(msg1), 0,(struct sockaddr *) &remoAddr, sizeof(remoAddr));    if(rc<0)    {      printf("%s: cannot send data %d \n",argv[0],i-1);      close(s);      exit(1);    }    memset(msg, 0x0, MAX_MSG);    j=sizeof(cliAddr);    n=recvfrom(s, msg, MAX_MSG, 0, (struct sockaddr *) &cliAddr, &j);    if(n<0)    {      printf("%s cannot receive data\n",argv[0]);      exit(1);    }        fwrite(msg,sizeof(char),100,fp);    fputc('\n',fp);//  printf("%s\n",msg);  }   fclose(fp);   return 1;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -