查看源代码
出自Linux Wiki
对
用Socket编写TCP程序(C/C++)
的源代码
根据以下的原因,您无权限进行编辑这个页面操作:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
本文介绍利用Linux下的C语言Socket函数建立TCP连接,兼容C++。 利用TCP连接,可以进行HTTP、FTP等常见协议的信息传输,是Linux[[:Category:网络编程|网络编程]]的重要部分。 ==需要引用的头文件== 进行网络编程,通常需要引用如下头文件,<font color=red>具体意义请补充</font> #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #include <unistd.h> ==进行客户端连接的主要步骤== 1.了解如下信息:连接到的服务器的域名或IP地址,服务器端的端口号 2.定义如下变量 struct sockaddr_in pin; struct hostent *nlp_host; int sd; char host_name[256]; int port; 并赋值,如: strcpy(host_name,"www.linux-wiki.cn"); port=80; 3.解析域名,如果是IP则不用解析,如果出错,显示错误信息 while ((nlp_host=gethostbyname(host_name))==0){ printf("Resolve Error!\n"); } 4.设置pin变量,这一部分比较复杂,不过通常只要直接复制就可以了~~ bzero(&pin,sizeof(pin)); pin.sin_family=AF_INET; //使用ARPA网际协议,一般都是这个 pin.sin_addr.s_addr=htonl(INADDR_ANY); pin.sin_addr.s_addr=((struct in_addr *)(nlp_host->h_addr))->s_addr; pin.sin_port=htons(port); //设置端口 5.建立socket sd=socket(AF_INET,SOCK_STREAM,0); 6.建立连接 while (connect(sd,(sockaddr*)&pin,sizeof(pin))==-1){ printf("Connect Error!\n"); } 7.发送信息的常用方法: send(int sd,char * data,int len,0); 其中sd是socket变量名(文件描述符),data是数据缓冲区的地址,len是缓冲区的大小,0通常无需更改 8.接收信息的常用方法: recv(int sd,char * buf,int maxlen,0); 9.关闭连接: close(int sd); [[Category: 网络编程]] ==服务器端的主要步骤== 待续
返回到
用Socket编写TCP程序(C/C++)
。
导航
首页
社区入口
当前事件
最近更改
随机页面
帮助
查看
页面
讨论
查看源代码
历史
个人工具
登录/创建账户
搜索
简体繁体转换
不转换
简体
繁體
工具箱
链入页面
链出更改
特殊页面