net-server/ccc.c
macbook-pro c0eea479aa use ggg
2023-12-18 06:23:29 +08:00

74 lines
1.9 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <fcntl.h>
#include <unistd.h>
#include <netinet/tcp.h>
#include <netdb.h>
int main(int argc, const char * argv[]) {
// insert code here...
printf("Hello, World!\n");
int client_sockfd;
int len;
struct sockaddr_in remota_addr; //服务器端网络地址结构体
char buf[BUFSIZ]; //数据传送的缓冲区
memset(&remota_addr,0,sizeof(remota_addr)); //数据初始化--清零
remota_addr.sin_family = AF_INET; //设置为IPV4通信
remota_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
remota_addr.sin_port = htons(8000); //服务器端口号
//创建客户端套接字--Ipv4协议面向连接通信TCP协议
//成功返回0 ,失败返回-1
if ((client_sockfd=socket(PF_INET, SOCK_STREAM, 0))<0) {
perror("socket");
return 1;
}
//将套接字绑定到服务器的网络地址上
if (connect(client_sockfd, (struct sockaddr *)&remota_addr, sizeof(struct sockaddr))<0) {
perror("connect");
return 1;
}
printf("connect to server\n");
len = recv(client_sockfd, buf, BUFSIZ, 0); //接受服务器端消息
buf[len]='/0';
printf("%s",buf); //打印服务器端消息
//循环的发送信息并打印接受消息--recv返回接收到的字节数send返回发送的字节数
while (1) {
memset(buf,0,sizeof(buf));
printf("Enter string to send");
scanf("%s",buf);
// if (!strcmp(buf,"quit")) {
// break;
// }
len=send(client_sockfd,buf,strlen(buf),0);
memset(buf,0,sizeof(buf));
len=recv(client_sockfd,buf,BUFSIZ,0);
buf[len]='\0';
printf("received:%s\n",buf);
if(buf[0]=='q'){
break;
}
}
close(client_sockfd);
return 0;
}