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

📄 udpclient.c

📁 linux下的udp socket通信
💻 C
字号:
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>
#include <arpa/inet.h>
#include <unistd.h>


#define MAXSIZE 80
#define SERV_PORT 8888

void do_cli(FILE *fp, int sockfd, struct sockaddr *pseraddr,socklen_t serlen)
{

	int n;

	char sendline[MAXSIZE]="hello";

	if(connect(sockfd, (struct sockaddr *)pseraddr, serlen) == -1)

	{

		perror("connect error\n");

		exit(1);


	}

	while(fgets(sendline, MAXSIZE, fp) != NULL)

	{

		write(sockfd, sendline, strlen(sendline));

		n = read(sockfd, recvline, MAXSIZE);

		if(n == -1)

		{
			perror("read error\n");

			exit(1);
		}

		recvline[n] = '\0';

		fputs(recvline, stdout);	}	printf("send it out\n");


}


int main(int argc, char **argv)
{

	int sockfd;

	struct sockaddr_in seraddr;


	if(argc != 2)
	{

		printf("usage:udpclient <IPaddress>\n");
		
		exit(1);
	}
	
	memset(&seraddr, 0, sizeof(seraddr));

	seraddr.sin_family = AF_INET;

	seraddr.sin_port = htons(SERV_PORT);		bzero(&(seraddr.sin_zero), 8);
	
	if(inet_pton(AF_INET, argv[1], &seraddr.sin_addr) <= 0)

	{
	
		printf("[%s] is not a valid IPaddress\n", argv[1]);

		exit(1);
	}

	sockfd = socket(AF_INET,SOCK_DGRAM, 0);

	do_cli(stdin, sockfd, (struct sockaddr *)&seraddr, sizeof(seraddr));
	close(sockfd);
	return 0;


}

⌨️ 快捷键说明

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