网络编程 day3

编程入门 行业动态 更新时间:2024-10-24 06:38:58

<a href=https://www.elefans.com/category/jswz/34/1768814.html style=网络编程 day3"/>

网络编程 day3

#include <head.h>
#define SER_PORT 6678 //服务器端口号
#define SER_IP "192.168.115.64"//服务器IP地址
#define CLI_PORT 6666 //客户端端口号
#define CLI_IP "192.168.115.93"
int main(int argc, const char *argv[])
{//1.创建套接字,用于连接使用int cfd=socket(AF_INET,SOCK_STREAM,0);if(cfd==-1){perror("socket error");return -1;}printf("cfd=%d\n",cfd);//设置端口号快速重用int reuse=1;if(setsockopt(cfd,SOL_SOCKET,SO_REUSEADDR,&reuse,sizeof(reuse))==-1){perror("setsockopt error");return -1;}printf("端口快速重用成功\n");//2.给套接字绑定地址信息//2.1填充地址信息结构体struct sockaddr_in sin;sin.sin_family=AF_INET; //地址族sin.sin_port=htons(CLI_PORT);//端口号网络字节序sin.sin_addr.s_addr=inet_addr(CLI_IP);//IP地址网络字节序//2.2绑定工作if(bind(cfd,(struct sockaddr*)&sin,sizeof(sin))==-1){perror("bind error");return -1;}printf("bind success _%d_\n",__LINE__);//3.连接服务器//3.1填充要连接的服务器地址信息结构体struct sockaddr_in cin;cin.sin_family=AF_INET;//IPV4通信cin.sin_port=htons(SER_PORT);//服务器端口号cin.sin_addr.s_addr=inet_addr(SER_IP);//服务器的主机地址//3.2连接服务器if(connect(cfd,(struct sockaddr*)&cin,sizeof(cin))==-1){perror("connect error");return -1;}printf("connect success _%d_\n",__LINE__);//4.收发数据char buf[5]={0xff,0x02,0x00,0,0xff};//用于接收要发送的char ch;//用于存储wasdwhile(1){//从终端获取输入的字符'w','a','s','d'scanf("%c",&ch);switch(ch){case 'w':{buf[3]++;buf[2]=0x00;if(buf[3]>90){buf[3]=0;continue;}break;}	case 'a':{buf[3]--;buf[2]=0x01;if(buf[3]<0){buf[3]=90;continue;}break;}	case 's':{buf[3]--;buf[2]=0x00;if(buf[3]<0){buf[3]=90;continue;}break;}	case 'd':{  	buf[3]++;buf[2]=0x01;if(buf[3]>180){buf[3]=0;continue;}break;}								}//发送给服务器端if(send(cfd,buf,sizeof(buf),0)==-1){perror("send error");return -1;}	}//5.关闭套接字close(cfd);return 0;
}        

更多推荐

网络编程 day3

本文发布于:2023-12-03 20:26:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1657287.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:网络编程

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!