c语⾔初始化socket,C语⾔socket编程----structsockaddr和st。
。。
sockaddr结构体
struct  sockaddr{
sa_family_t  sa_family; //地址族,最常⽤的是"AF_INET"(IPV4)和"AF_INET6"(IPV6);
char  sa_data[14];      //包含套接字中的⽬标地址和端⼝信息;
};
sockaddr的缺陷:sa_data把⽬标地址和端⼝信息混在⼀起了
sockaddr_in 结构体
sockaddr_in结构体解决了sockaddr的缺陷,把port和addr 分开储存在两个变量中
struct  sockaddr_in/  struct  sockaddr_in6结构体
struct  sockaddr_in{
sa_family_t   sin_family;  //地址族,常⽤AF_INET
uint16_t         sin_port;    //16位TCP/UDP端⼝号
struct  in_addr  sin_addr;    //32位IP地址
cha        sin_zero[8]  //不使⽤
};
struct  in_addr{
c语言struct头文件in_addr_t    s_addr;      //32位IPV4地址
}
struct sockaddr_in6 {
sa_family_t     sin6_family; /* AF_INET6 */
in_port_t      sin6_port; /* port number */
uint32_t      sin6_flowinfo; /* IPv6 flow information */
struct in6_addr    sin6_addr; /* IPv6 address */
uint32_t        sin6_scope_id; /* Scope ID (new in 2.4) */
};
struct in6_addr {
unsigned  char s6_addr[16]; /* IPv6 address */
};
初始化和赋值:
IPV4
struct sockaddr_in ina;
bzero(&ina,sizeof(ina));
ina.sin_family=AF_INET;
ina.sin_port=htons(23);
ina.sin_addr.s_addr = inet_addr("132.241.5.10");
IPV6
const  ipv6_addr = "::1";    //IPV6地址
struct  sockaddr saddr;
memset(&saddr, 0, sizeof(saddr));  /  /初始化结构体
saddr.sa_family = AF_INET6;
inet_pton(AF_INET6,ipv6_addr,saddr.sa_data);    //设置地址
struct sockaddr_in6 from_addr;
bzero(&from_addr,sizeof(from_addr));    //初始化结构体
from_addr.sin6_family = AF_INET6;   //设置地址家族
from_addr.sin6_port = htons(800);    //设置端⼝
inet_pton(AF_INET6,ipv6_addr,from_addr.sin6_addr.s6_addr );   //设置地址
C语⾔socket编程
结构体struct sockaddr_in, struct sockaddr,struct in_addr
⼀.结构体 struct sockaddr_in,  struct sockaddr,  struct in_addr struct sockaddr_in,  struct sockaddr,str ...
计算机⽹络|C语⾔Socket编程,实现两个程序间的通信
C语⾔Socket编程,实现两个程序间的通信 server和client通信流程图 在mooc上到的,使⽤Socket客户端client和服务端server通信的流程图
[转]C语⾔SOCKET编程指南
1.介绍 Socket编程让你沮丧吗?从man pages中很难得到有⽤的信息吗?你想跟上时代去编Internet相关的程序,但是为你在调
⽤ connect() 前的bind() 的结构⽽不知所措?等 ...
C语⾔SOCKET编程指南
1.介绍 Socket 编程让你沮丧吗?从man pages中很难得到有⽤的信息吗?你想跟上时代去编Internet相关的程序,但是为你在调
⽤ connect() 前的bind() 的结构⽽不知所措? ...
C语⾔socket编程--每⽇签到
前⼏天写了个python的每⽇签到,你运⾏还得借助crontab,很是不爽.....正好前⼏天看了个关于c编写daemon进程,加上⾃⼰那点可怜的socket知识,于是我们重操旧页,C语⾔版的每⽇签到 ...
C语⾔Socket编程(计算机⽹络作业)
最近我计算机⽹络课程要做作业了,没办法跟着⽼师⼀步⼀步的写C语⾔的代码,使⽤的计算就是Soc
ket通信发送消息:代码实现的功能很简单,客户端向服务器端发送消息,服务器端接收客户端发来的消息,并且输出显 ...
转:struct sockaddr与struct sockaddr_in ,struct sockaddr_un的区别和联系
在linux环境下,结构体struct sockaddr在/usr/include/linux/socket.h中定义,具体如下:typedef unsigned short sa_family_t; ...
多种语⾔socket编程集锦—win32
随机推荐
C#⾼级编程笔记 Delegate 的粗浅理解 2016年9⽉ 13⽇
3_for循环的拓展应⽤
HTML代码:
杭电ACM2058--The sum problem
FOR 循环 索引从n 开始
RF 中FOR 循环默认是从0开始,如果想从任意n开始如下所⽰: ⽅法⼀: 结果,如你所愿输出1-6: ⽅法⼆,利⽤FOR遍历list来实现: 结果: 这⾥注意是输出1-9⽽不是1-10
【读书札记】建⽴第⼀个Web项⽬
安装配置好at,我⽤的版本号是7.0.54,我放在C:\server\apache-tomcat-7.0.54下, CATALINA_BASE:C:\server\apache-tom ...
jQuery图⽚轮播的具体实现
先看⼀看html代码,以及对应的css代码:
...
Python之False和None
这个其实在Python⽂档当中有写了,为了准确起见,我们先引⽤Python⽂档当中的原⽂: In the context of Boolean operations, and also when ex ...
SpringBoot使⽤redis缓存List<;Object>;
⼀.概述 最近在做性能优化,之前有⼀个业务是这样实现的: 1.温度报警后第三⽅通讯管理机直接把报警信息保存到数据库 2.我们在数据库中添加触发器,(BEFORE INSERT)根据这条报警信息处理业务 ...
jQuery $.each(&rpar;常见的⼏种使⽤⽅法
王⽴平--查看SQLite中的数据信息
Eclipse菜单Window - Open Perspective - DDMS进⼊DDMS视图. 然后File Explorer View中依次展开路径/data/data/package_nam ...

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。