易截截图软件、单文件、免安装、纯绿色、仅160KB

linux 网络编程

bind(socket s,(struct sockadd *)&server,sizeof(server)) ;
(struct sockadd *)&server 这句话不是很理解,我怎么感觉通常都不用取地址符号啊?
哪位大侠帮助解释一下,加&和不加的区别。
指针。

bind的原型
int bind(int sockfd,struct sockaddr *my_addr, int addrlen);

你那个代码里
server是一个指向包含有本机IP地址及端口号等信息的sockaddr类型的指针
这句话就是取server的地址 再将其转换为指向struct sockaddr的指针

引用
bind的原型
int bind(int sockfd,struct sockaddr *my_addr, int addrlen);

你那个代码里
server是一个指向包含有本机IP地址及端口号等信息的sockaddr类型的指针
这句话就是取server的地址 再将其转换为指向struct sockaddr的指针

如果是这样的话,那不是将地址转为指向struct sockaddr的指针么?
如果不加取地址比较容易理解,毕竟(struct sockadd *),将它转换为一个结构体指针。

对了,一个sockfd,是不是只能绑定到一个my_addr 上?


server 是一个struct sockaddr_in 类型的结构体,里面包含ip地址及端口号等信息不是一个指针;
&server是取这个结构体的地址;
(struct sockaddr*)&server是将其地址类型给转换一下;
至于转换的原因是因为,struct sockaddr与 struct sockaddr_in 有些不同,像我们的ip地址通常为IPV4, 这时我们用第二种,但是也会有IPV6格式的ip地址,我们就要转换为通用地址格式,也就是第一种。

引用
引用 2 楼 steptodream 的回复:


相关问答:

关于linux下socket编程的问题! - C/C++ / C语言

由于我才刚刚接触socket编程,自己写了一个简单程序,但就是在运行的时候出现段错误,无法解决,现在我把源代码贴出来,请各位大虾指正一下!谢谢!
#include<stdio.h>
#include<stdlib.h>
#include& ......

c语言实现linux time相关函数 - C/C++ / C语言

现在需要在一个嵌入式系统中实现时间函数,编译器未提供time库函数,请问大家如何用c语言实现时间函数啊?
年月日时分秒 到 整数秒(从1970年开始) 之间的相关转换啊
类似mktime 和localtime的功能,谢谢
mktime ......

lINUX 的PID的问题 - Linux/Unix社区 / 程序开发区

各位老师好:小弟有一点问题 琢磨了好久想请教大师们:
我在安装mysql的时候 安装到
./configure \
--prefix=/usr/local/mysql \
--with-extra-charsets=all
这步的时候出现:
configure: unknown option --p ......

linux不能访问access - Java / Java EE

rt,我试了网上直连Acces数据库的方法,windows下没有问题,但是在linux下不行,谁能给点提示?谢谢
你怎么连的?

Acces数据库..
你怎么练的呢?

Java code:

static String DBDRIVER = "sun.jd ......

linux shell 中# 字符当成注释?

linux shell 中# 字符当成注释?用\#好像不可以!请大家关注看看!
\只有放在行最后才能连接两行
\#就成了转义符,跟\n \r 之类的一样

顶一下

是的

1楼说的对
在shell脚本中 #确实是注释用的
但是echo ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号