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

📄 ex14_echocli1.c

📁 linux 高级编程的例子源码,包括了本书上的所有代码
💻 C
字号:
/*filename:ex14_echocli1.c*/
#include "ourhead.h"
#include "udp_client.h"

void usage(char *name)
{
	printf("Usage: %s [hostname or IP address]\n",name);
	return ;
}

int main(int argc,char **argv)
{
    char *host="127.0.0.1";
    char recvline[MAXLINE+1];
    char sendline[MAXLINE+1];
    int sockfd,count;
    struct sockaddr_in servaddr;
	socklen_t salen;

	if (argc!=1&&argc!=2)
	{
		usage(argv[0]);
		exit(1);
	}

	if (argc==2)
	{
		host=argv[1];
	}

	sockfd=udp_client(host,"9999",(struct sockaddr*)&servaddr,&salen);
	if (sockfd<0)
	{
       printf("error:udp_client\n");
       exit(1);
	}
	while (fgets(sendline,MAXLINE,stdin)!=NULL)
	{
		count=sendto(sockfd,sendline,strlen(sendline),0,(struct sockaddr*)&servaddr,salen);
        if (count<0)
		{
           printf("can not send data: %s\n",strerror(errno));
           exit(1);
		}
		count=recvfrom(sockfd,recvline,MAXLINE,0,NULL,NULL);
        if (count<0)
		{
			printf("can not recv data: %s\n",strerror(errno));
            exit(1);
		}
		recvline[count]=0;
		fputs(recvline,stdout);
	}
	close(sockfd);
	exit(0);
}

⌨️ 快捷键说明

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