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

📄 client.c

📁 一个简单的linux下的网络传输程序
💻 C
字号:
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>

#define PORT 8004
#define MAX_BUF_SIZE    1024 


void udpc_requ(int sockfd,const struct sockaddr_in *addr,int len) 
{ 
        char buffer[MAX_BUF_SIZE]; 
        int n; 
        while(1)         
        {        /*   从键盘读入,写到服务端   */ 
                fgets(buffer,MAX_BUF_SIZE,stdin); 
                sendto(sockfd,buffer,strlen(buffer),0,(struct sockaddr*)addr,len); 
                bzero(buffer,MAX_BUF_SIZE); 
                /*   从网络上读,写到屏幕上    */ 
                n=recvfrom(sockfd,buffer,MAX_BUF_SIZE,0,NULL,NULL); 
                buffer[n]=0; 
                fputs(buffer,stdout); 
        } 
} 



int main(int argc,char** argv)
{
	int sockfd,port;
	struct sockaddr_in servAddr;
	
	if(argc != 3)
	{
		fprintf(stderr,"usage: %s server_ip server_port\n",argv[0]);
		exit(1);
	}
	if((port = atoi(argv[2])) < 0)
	{
		fprintf(stderr,"usage: %s server_ip server_port\n",argv[0]);
		exit(1);
	}

	sockfd = socket(AF_INET,SOCK_DGRAM,0);
	if(sockfd < 0)
	{
		fprintf(stderr,"Socket  Error:%s\n",strerror(errno)); 
		exit(1);
	}
	bzero(&servAddr,sizeof(servAddr));
	servAddr.sin_family = AF_INET;
	servAddr.sin_port = htons(port);
	if(inet_aton(argv[1],&servAddr.sin_addr)<0) 
    { 
        fprintf(stderr,"Ip error:%s\n",strerror(errno)); 
        exit(1); 
    } 
	udpc_requ(sockfd,&servAddr,sizeof(struct sockaddr_in)); 
    close(sockfd); 

}

⌨️ 快捷键说明

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