#include <stdio.h>
#include <ctype.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <pthread.h>
#define SERV_PORT 8888
void sys_err(const char *str)
{
perror(str);
exit(1);
}
int main()
{
int cfd = 0;
int conter = 10;
char buf[BUFSIZ];
struct sockaddr_in serv_addr;
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(SERV_PORT);//端口号从本地字节序转为网络字节序
//客户端要绑定服务器IP,不能使用服务器那种INADDR_ANY
//inet_pton():将服务器IP“127.0.0.1”转换为网络字节序并保存在serv_addr.sin_addr.s_addr中
inet_pton(AF_INET, "127.0.0.1", &serv_addr.sin_addr.s_addr);
cfd = socket(AF_INET, SOCK_STREAM, 0);//创建一个额socket套接字
if(cfd == -1)
sys_err("socket error");
//客户端调用connect()连接服务器
//connect()和bind()参数一致,区别在于bind的参数是自己的地址,而connect的参数是对方的地址
int ret = connect(cfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr));
if(ret != 0)
sys_err("connect error");
while(conter--){
write(cfd, "hello", 5);//向服务器写
ret = read(cfd, buf, sizeof(buf));//从服务器处读内容
write(STDOUT_FILENO, buf, ret);//将内容输出在屏幕上
}
close(cfd);
return 0;
}
05-26
771
01-18
1万+
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交