文档介绍:TCP编程
主要内容
第一个TCP程序
基本的C/S服务模型
简单的客户/服务器模型
C
S
1、数据请求
2、数据响应
无连接
3、数据请求
4、数据响应
1、连接请求
2、连接响应
5、关闭请求
6、关闭响应
C
S
复杂的客户/服务器模型
C
S
C
C
C
C
TCP套接字编程(cont.)
第一个TCP程序
#include <sys/>
#include </>
#include <sys/>
int main(int argc, char *argv[])
{
int sockfd;
sockfd = socket(, SOCK_STREAM, 0);
if(sockfd== -1)
{
printf(“socket error”);
}
}
基本套接字函数-socket
#include <sys/>
int socket(int family, int type, int protocol)
返回:非负套接字(sockfd)-成功;-1-出错。
family:协议族;type:套接字类型; protocol:一般为0,除原始套接字外。
family type
IPv4协议 SOCK_STREAM 字节流套接口
6 IPv6协议 SOCK_DGRAM 数据报套接口
AF_LOCAL unix域协议 SOCK_RAW 原始套接口
AF_ROUTE 路由套接口
AF_KEY 密钥套接口
Protocol:指明此socket请求所使用的协议,可以使用如下相关符号常数来表示。IPPROTO_TCP:表示TCP协议IPPROTO_UDP:表示UDP协议
问题
如何创建一个UDP的SOCKET
TCP的客户连接功能
#include <sys/>
#include </>
#include <sys/>
int main(int argc, char *argv[])
{
int sockfd;
struct sockaddr_in addr;
sockfd = socket(, SOCK_STREAM, 0);
if(sockfd== -1)
{
printf(“socket error”);
}
=;
=htons(21);
= inet_addr("");
if( connect(sockfd, (struct sockaddr *)&addr, sizeof(addr))==-1)
{
printf(“conect error”);
}
close(sockfd);
}