社区
Linux/Unix社区
帖子详情
sockaddr在那个头文件里?
jilei82
2004-09-22 11:33:00
本人初学linux网络编程。很多东西不知道。
...全文
1819
7
打赏
收藏
sockaddr在那个头文件里?
本人初学linux网络编程。很多东西不知道。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yanghuajia
2004-09-24
打赏
举报
回复
sockaddr is at linux/socket.h
^_^
yanedanny
2004-09-24
打赏
举报
回复
if(connect(sockfd,(sockaddr *)&servaddr,sizeof(servaddr))<0)中(sockaddr *)的改为(sockaddr_in *)。
你太粗心了。
jilei82
2004-09-23
打赏
举报
回复
试了还是不行。
代码如下:
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <errno.h>
#include <stdio.h>
#define MAXLINE 2096
int main(int argc,char **argv)
{
int sockfd,n;
char recvline[MAXLINE+1];
struct sockaddr_in servaddr;
if(argc!=2)
err_sys("usage:filename<ip address>");
if(sockfd=sock(AF_INET,SOCK_STREAM,0)<0);
err_sys("sock call error\n");
bzero(&servaddr,sizeof(servaddr));
servaddr.sin_family=AF_INET;
servaddr.sin_port=htons(13);
if(inet_pton(AF_INET,argv[1],&servaddr.sin_addr)<0)
err_quit("inet_pton call error for %s\n",argv[1]);
if(connect(sockfd,(sockaddr *)&servaddr,sizeof(servaddr))<0)
err_sys("connect error\n");
while((n=read(sockfd,recvline,MAXLINE))>0)
{
recvline[n]=0;
if(fputs(recvline,stdout)==EOF)
err_sys("fputs error\n");
}
exit(0);
}
哪位大侠看看问题在哪里。
yanedanny
2004-09-23
打赏
举报
回复
#include <sys/socket.h>前应该include <sys/types.h>。试试!
jilei82
2004-09-23
打赏
举报
回复
我用了
#include <sys/socket.h>
if(connect(sockfd,(sockaddr *)&servaddr,sizeof(servaddr))<0)
err_sys("connect error\n");
编译的时候总说:sockaddr 没有定义。
lynux
2004-09-23
打赏
举报
回复
man socket
lijiangshui
2004-09-22
打赏
举报
回复
<sys/socket.h>
bits/**.h
头文件
sigset.h
sock
add
r.h
sock
et.h types.h typesizes.h uio.h wordsize.h ...只是在GNU下的C library,直接下载放进bits文件夹即可
百度地图开发java源码-TCP-IP-NetworkNote:《TCP/IP网络编程》(韩-尹圣雨)学习笔记
百度地图开发java源码 1 开始网络编程 1.1 理解网络编程和套接字 linux
头文件
#include
windows
头文件
#include
sock2> 基于linux平台的实现 网络编程结束连接请求的套接字创建过程为 1. 调用
sock
et函数创建套接字 int
sock
et(int domain,int type ,int protocol); 2. 调用bind函数分配IP地址和端口号 int bind(int
sock
fd, struct
sock
add
r *my
add
r,
sock
len_t
add
rlen); 3. 调用listen函数转化为可接收请求状态 int listen(int
sock
fd, int backlog); 4. 调用accept函数受理连接请求 int accept(int
sock
fd, struct
sock
add
r *
add
r ,
sock
len_t *
add
rlen); linux不区分文件和套接字 打开文件 #include
#include <sys/st
详解C语言中accept()函数和shutdown()函数的使用
C语言accept()函数:接受
sock
et连线
头文件
: #include
#include
定义函数: int accept(int s, struct
sock
add
r *
add
r, int *
add
rlen); 函数说明:accept()用来接受参数s 的
sock
et 连线. 参数s 的
sock
et 必需先经bind()、listen()函数处理过, 当有连线进来时accept()会返回一个新的
sock
et 处理代码, 往后的数据传送与读取就是经由新的
sock
et处理, 而原来参数s 的
sock
et 能继续使用ac
sock
add
r_in
头文件
与
sock
add
r
头文件
不是同一个
sock
add
r_in
头文件
为:#include
sock
add
r
头文件
为:#include
linux
sock
add
r_in
头文件
,linux网络编程常用
头文件
sys/types.h:数据类型定义sys/
sock
et.h:提供
sock
et函数及数据结构netinet/in.h:定义数据结构
sock
add
r_inarpa/inet.h:提供IP地址转换函数netdb.h:提供设置及获取域名的函数sys/ioctl.h:提供对I/O控制的函数sys/poll.h:提供
sock
et等待测试机制的函数其他在网络程序中常见的
头文件
unistd.h:提供通用的文件、...
Linux/Unix社区
23,125
社区成员
74,509
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章