网络编程day2

1.思维导图网络编程day2_第1张图片

2.虚拟机实现客户端控制大小臂

#include 
#define SER_PORT 8888
#define SER_IP "192.168.122.25"
#define CLI_PORT 6666
#define CLI_IP "192.168.122.41"
int main(int argc, const char *argv[])
{
	//创建用于通信的套接字文件描述符
	int cfd = -1;
	cfd = socket(AF_INET,SOCK_STREAM,0);
	if(cfd == -1)
	{
		perror("socket error");
		return -1;
	}
	//绑定
	//填充地址信息结构体
	struct sockaddr_in cin;
	cin.sin_family = AF_INET;
	cin.sin_port = htons(CLI_PORT);
	cin.sin_addr.s_addr = inet_addr(CLI_IP);
	if(bind(cfd,(struct sockaddr*)&cin,sizeof(cin))==-1)
	{
		perror("bind error");
		return -1;
	}
	//链接服务器
	struct sockaddr_in sin;
	sin.sin_family = AF_INET;
	sin.sin_port = htons(SER_PORT);
	sin.sin_addr.s_addr = inet_addr(SER_IP);
	//链接
	if(connect(cfd,(struct sockaddr*)&sin,sizeof(sin))==-1)
	{
		perror("connect error");
		return -1;
	}
	//x、y臂初始角度
	char bufx[5]={0xff,0x02,0x00,0x10,0xff};
	char bufy[5]={0xff,0x02,0x01,0x10,0xff};
	//选择变量
	char rbuf;
	while(1)
	{
		printf("请输入>>>");
		rbuf=getchar();
		switch(rbuf)
		{
		case 'w':
			bufx[3]++;
			if(bufx[3]>90)
			{
				bufx[3]=90;
			}
			//发送给服务器
			send(cfd,bufx,sizeof(bufx),0);
			printf("发送成功\n");
			break;
		case 's':
			bufx[3]--;
			if(bufx[3]<-90)
			{
				bufx[3]=-90;
			}
			//发送给服务器
			send(cfd,bufx,sizeof(bufx),0);
			printf("发送成功\n");
			break;
		case 'd':
			bufy[3]++;
			if(bufy[3]>180)
			{
				bufy[3]=180;
			}
			//发送给服务器
			send(cfd,bufy,sizeof(bufy),0);
			printf("发送成功\n");
			break;
		case 'a':
			bufy[3]--;
			if(bufy[3]<0)
			{
				bufy[3]=0;
			}
			//发送给服务器
			send(cfd,bufy,sizeof(bufy),0);
			printf("发送成功\n");
			break;
		}
	}
	//关闭服务器
	close(cfd);
	return 0;
}

你可能感兴趣的:(网络,c#)