📄 internet_clt.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 + -