博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux 基本网络编程
阅读量:7082 次
发布时间:2019-06-28

本文共 2174 字,大约阅读时间需要 7 分钟。

基本套接字分为客户机/服务器和点对点模式。

C/S:sever/client---------------------------一般采用TCP

B/S:browser/server-----------------------一般采用UDP

常用的数据结构有in_addr(存储IP地址),sockaddr_in(表示Internet协议地址结构),sockaddr(存储主机IP地址和接口信息)。

struct in_addr{    union{        struct{u_char, s_b1, s_b2, s_b3, s_b4} s_un_b;        struct{u_short s_w1, s_s2;} s_un_w;        u_long s_addr;  } s_un; }
struct sockaddr_in{    short sin_family;                //AF_INET    u_short sin_port;               //16位端口号    struct in_addr sin_addr;   //32位IP地址    char sin_zero[8];};
struct sockaddr{    unsigned short sa_family;    char sa_data[14];};

例子:

in_addr test;test..s_un_b.s_b1=192;test..s_un_b.s_b2=168;test..s_un_b.s_b3=0;test..s_un_b.s_b4=1;
struct sockaddr_in serverAddr;memst(&serverAddr,0,sizeof(struct sockaddr_in));serverAddr.sin_family=AF_INET;                          //AF_INET表示TCPserverAddr.sin_port=htons(80);serverAddr.sin_addr.s_addr=htonl(INADDR_ANY);           //INADDR_ANY表示当前所用的IP

常用函数

#incldue
//创建套接字SOCKET PASCAL FAR socket(int af, int type, int protocol)//af指定通信协议--AF_UNIX,AF_INET,AF_NS//type指定套接字类型,SOCK_STREAM(TCP),SOCK_DGRAM(UDP),SOCK_RAM(原始套接字)//protocol指定特定协议//套接字绑定int PASCAL FAR bind(SOCKET s, const struct sockaddr FAR *name, int namelen)//s指定要关联的套接字//name指定要绑定的IP地址与端口信息//侦听int PASCAL FAR listen(SOCKET s, int backlog)//backlog指定请求连接队列的最大长度,一般设为5//侦听,接受数据SOCKET PASCAL FAR accept(SOCKET s, struct sockaddr FAR* addr, int FAR* addrlen)//s为当前指定的套接字//addr为保存当前客户端的地址信息//创建连接int PASCAL FAR connect(SOCKET s, const struct sockaddr FAR* name, int namelen)//TCP发送数据int PASACAL FAR send(SOCKET s, const char FAR* buf, int len, int flags);//s指定已经连接的套接字//buf表示待发送数据的缓冲区//flags用于设定发送控制参数,一般为0//TCP接受数据int PASACAL FAR recv(SOCKAET s,char FAR* buf,int len,int flags);//UDP发送数据ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen)ssize_t recvform(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *from, socklen_t fromlen) //sockfd表示已经创建好的一个UDP套接字 //to.from用于设置接受方和发送方的地址信息 //tolen,fromlen用于设置地址信息的长度

本文转自cococo点点博客园博客,原文链接:http://www.cnblogs.com/coder2012/archive/2013/04/02/2995827.html,如需转载请自行联系原作者

你可能感兴趣的文章
String和StringBuffer区别
查看>>
编程需要知道多少数学知识?
查看>>
虚拟空间,malloc
查看>>
PLL详解
查看>>
OSG闪存
查看>>
irssi忽略退出,加入消息
查看>>
从源码带你看懂functools的partial方法
查看>>
LeetCode:434. Number of Segments in a String
查看>>
Matplotlib 绘图与可视化 一些属性和错误
查看>>
c打印9*9乘法表
查看>>
[2017BUAA软工]提问回顾
查看>>
Python--day65--模板语言之filter
查看>>
centos下添加定时执行php脚本任务
查看>>
使用ADO.NET访问数据库
查看>>
Python 爬虫-抓取小说《盗墓笔记-怒海潜沙》
查看>>
Python 框架篇
查看>>
电梯调度
查看>>
ASP操作Excel技术总结[转载收藏]
查看>>
最大公约数、最小公倍数
查看>>
jsp学习与提高(四)——JSP Session 处理
查看>>