1 / 26
文档名称:

linux c编程网络编程.ppt

格式:ppt   大小:275KB   页数:26页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

linux c编程网络编程.ppt

上传人:相惜 2022/3/16 文件大小:275 KB

下载得到文件列表

linux c编程网络编程.ppt

文档介绍

文档介绍:LINUX C编程
整理课件
套接字与网络编程
TCP/IP协议简介
Socket编程
整理课件
专门用
于为用
户提供
应用服
务(ftp,
telnet,
Smtp..)‏
TCP/IP参考模型
应用层
twork To Host Short”,网络字节顺序->主机地址
ntohl:” Network To Host long”,网络字节顺序->主机地址(长型)‏
整理课件
获取服务器和客户端主机信息
#include <>
Struct hostent * gethostbyname(const char * hostname);//将机器名()转换为一个hostent的结构指针,在这个结构里
保存域名的地址信息。
Struct hostent * gethostbyaddr(const char * addr,int len,int type);
将一个32位的IP地址(C0A80001)转换为一个hostent的结构指针,
在这个结构里保存域名的地址信息。
Ip地址和域名的转换
Struct hostent{
char * h_name;//主机的正式名字(域名)‏
char * h_aliases;//主机的别名
int h_addrtype;//主机的地址类型(如AF_INET)‏
int h_lengh;//主机的地址长度,对于IPV4为说是4个字节其32位
char ** h_addr_list;//主机的IP地址列表
}
#define h_addr h_addr_list[0]//主机的第一个IP地址
整理课件
获取服务器和客户端主机信息
#include <netinet/>
#include <arpa/>
Int inet_aton(const char * cp,struct in_addr *inp)‏
char * inet_ntoa(struct in_addr in)‏
//网络上的IP地址都是由“点分十进制”(“”)方式表示,在struct in_addr结构中采用的是32位的IP地址,“”实际表示为32位的IP地址应该为C0A80100。
a代表”ascii”,n代表”network”。
Inet_aton(),并存储在inp指针所指向的地址里;
Inet_ntoa()将32位的IP地址转换为””的字符串格式。
字符串的IP地址与32位的IP地址的转换
整理课件
获取服务器和客户端主机信息
字符串的IP地址与32位的IP地址的转换
整理课件
获取服务器和客户端主机信息
#include <>
struct hostent * gethostbyname(const char * hostname);域名---IP转换
struct hostent * gethostbyaddr(const char * hostname);IP—域名转换
获取主机信息的函数
整理课件
Socket 编程
基于TCP
即面向连接的通信数据流
整理课件
#include <sys/>
#include <sys/>
int socket(int domain,int type,int protocol)‏
函数说明:创建一个套接字描述符,如果失败返回 -1.
domain为地址族AF_XXX,type为套接字类型,SOCK_STREAM(TCP),SOCK_DGRAM (UDP),SOCK_RAW(IP、ICMP);
protocol 指定协议 0为自动选择 。
(第一步)创建套接字以获得文件描述符
Socket 编程(采用客户端/服务器端模工作)‏
整理课件
#include <sys/>
#include <sys/>
int bind(int sockfd,struct sockaddr* my_addr,int addrlen);
函数说明:成功返回0,如果失败返回 -1
sockfd:由socket()调用返回的文件描述符
myaddr: 指向sockaddr的指针,由于系统兼容性问题,一般
使用struct sockaddr_in代替。
addrlen:sockaddr结构的长度
Socket 编程步骤
(第二步)建立连接,将套接字与本地计算机的地址绑定在一起
整理课件
Socket 编程
#include <strin