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

📄 internet_clt.c

📁 linux系统下的socket源码
💻 C
字号:
/* * server.c *  Created on: 2008-10-18 *      Author: xunzhao * internet domain 通信,客户端 */#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <sys/un.h>#include <unistd.h>#include <errno.h>#include <signal.h>#include <sys/wait.h>#include <netinet/in.h>#include <arpa/inet.h>#include <netdb.h>#include <unistd.h>#include <ctype.h>#include <stdlib.h>#include "usock.h"#define port 5120  //设置服务器端口int main(int argc, char *argv[]){	int connect_fd;	int ret;	char recv_buf[1024];	char snd_buf[1024];	char username[30];	//int i;	socklen_t len;	//static struct sockaddr_in srv_addr;	struct usock srv_addr;	//客户端运行需要给出具体的连接地址和端口	if(argc != 3){		printf("Usage: %s server_ip_address  username \n",argv[0]);		return 1;	}	//port = atoi(argv[2]);	connect_fd = socket(AF_INET, SOCK_STREAM, 0);	if(connect_fd < 0){		perror("Cann't creat communication socket!\n");		return 1;	}	memset(&srv_addr, 0, sizeof(srv_addr));	srv_addr.sockaddr.sin_family = AF_INET ;	srv_addr.sockaddr.sin_addr.s_addr = inet_addr(argv[1]);	srv_addr.sockaddr.sin_port = htons(port);	//srv_addr.name[]="xunzhao";	//char name[30]="xunzhao";	strcpy(username,argv[2]);	//连接指定的服务器	ret = connect (connect_fd, (struct sockaddr*) &srv_addr.sockaddr, sizeof(srv_addr));	if(ret == -1){		perror("Cann't connect to the server!\n");		close(connect_fd);		return 1;	}	send(connect_fd,username,30,0);	memset(snd_buf,0,1024);	//用户输入信息后,程序将输入的信息通过套接字发送给服务器	//然后调用read函数从服务器中读取发送来的消息	//当输入"@"时,程序退出	while(1){		write(STDOUT_FILENO,"This is client,please input message:",37);		//从键盘读取用户输入的数据,并写入发送缓存snd_buf		memset(snd_buf,0,1024);		len=read(STDIN_FILENO,snd_buf,1024);		//len=recv(STDIN_FILENO,snd_buf,1024,0);		if(len > 0 ) {			//write(connect_fd,snd_buf,len);			send(connect_fd,snd_buf,len,0);		} else //Check the length of user input ,but it seem to doesn't work 			printf("发送的消息不能为空!");		if(snd_buf[0] == '@' )			break;		//接受数据并写入接收缓存recv_buf中		memset(recv_buf,0,1024);		//len = read(connect_fd,recv_buf,len);		len = recv(connect_fd,recv_buf,len,0);		if(len > 0 )			printf("Message from server: %s\n",recv_buf);			}			close(connect_fd);	//shutdown(connect_fd,2);	return 0;}

⌨️ 快捷键说明

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