Linux下简单的socket通信实例
作者:网络转载 发布时间:[ 2015/6/16 11:31:27 ] 推荐标签:操作系统 socket
学习网络编程也一段时间了,刚开始看《UNIX网络编程》的时候,觉得这本厚厚的书好难啊!看到后来,发现并没有想象中的那么难。如果你是新手,建议你看到第二部分结束后,开始着手写代码。不写代码肯定是不行的。看100遍也没有敲一遍实现一遍来的清楚。敲完以后,带着问题去看书,你会更加有针对性。提高的速度是飞快的,这也是学习任何一本书、一门语言的手段。
我很希望和大家一起分享学习网络编程遇到的种种困难与不顺,也希望和大家一起讨论其中遇到的问题,一起成长,如果你刚开始打算学习网络编程,那这篇文章一定能给你一些帮助,我的邮箱:cvmimi_linhai@foxmail.com,转载请注明出处。
关于怎样介绍这个简单的实例:
--> 1、代码展示,功能介绍
--> 2、首先介绍一下客户端和服务端中函数的功能以及函数的原形。
--> 3、关于连接三次握手和TCP连接关闭时候的分组交换
--> 4、IPv4、IPv6套接字的地址结构
--> 5、一些好的学习网站总结
--> 6、代码下载
client.c
1 #include <stdio.h>
2 #include <sys/socket.h>
3 #include <sys/types.h>
4 #include <stdlib.h>
5 #include <netinet/in.h>
6 #include <errno.h>
7 #include <string.h>
8 #include <arpa/inet.h>
9 #include <unistd.h>
10 #define MAXLINE 1024
11 int main(int argc,char **argv)
12 {
13 char *servInetAddr = "127.0.0.1";
14 int socketfd;
15 struct sockaddr_in sockaddr;
16 char recvline[MAXLINE], sendline[MAXLINE];
17 int n;
18
19 if(argc != 2)
20 {
21 printf("client <ipaddress>
");
22 exit(0);
23 }
24
25 socketfd = socket(AF_INET,SOCK_STREAM,0);
26 memset(&sockaddr,0,sizeof(sockaddr));
27 sockaddr.sin_family = AF_INET;
28 sockaddr.sin_port = htons(10004);
29 inet_pton(AF_INET,servInetAddr,&sockaddr.sin_addr)
30 if((connect(socketfd,(struct sockaddr*)&sockaddr,sizeof(sockaddr))) < 0 )
31 {
31 printf("connect error %s errno: %d
",strerror(errno),errno);
32 exit(0);
33 }
34
35 printf("send message to server
");
36
37 fgets(sendline,1024,stdin);
38
39 if((send(socketfd,sendline,strlen(sendline),0)) < 0)
40 {
41 printf("send mes error: %s errno : %d",strerror(errno),errno);
42 exit(0);
43 }
44
45 close(socketfd);
46 printf("exit
");
47 exit(0);
48 }
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11