请问IP数据包是怎么编写的。。。用C语言。。。谢谢大侠 10

RTrt具体点呢?... RTrt
具体点呢?
展开
 我来答
来自沩山朴实的马蹄莲
2008-04-29 · TA获得超过236个赞
知道答主
回答量:129
采纳率:0%
帮助的人:87.8万
展开全部
用socket函数写的。

《unix网络编程》可入门。

入门后看看<tcp/ip>详解。
#include
#include
#include /*包含有htons等函数的头文件*/
#include
#include
void main()
{
int listenfd,clifd;
long pid;
struct sockaddr_in myaddr,cliaddr;
int ret;
int len;
listenfd=socket(AF_INET,SOCK_STREAM,0);
if (listenfd<0)
{
perror("socket error");
exit(-1);
}
myaddr.sin_family=AF_INET;
myaddr.sin_addr.s_addr=htonl(INADDR_ANY);
myaddr.sin_port=htons(8888);
ret=bind(listenfd,(struct sockaddr *)&myaddr,sizeof(myaddr));
if (ret<0)
{
perror("bind error");
exit(-1);
}
listen(listenfd,10);
len=sizeof(struct sockaddr);
while(1)
{
clifd=accept(listenfd,(struct sockaddr*)&cliaddr,&len);
/*注意accept的第三个参数也是地址*/
if(clifd==-1)
{
perror("accept error");
continue;
}
printf("connect from %s %d
",inet_ntoa(cliaddr.sin_addr.s_addr),
ntohs(cliaddr.sin_port));
switch(pid=fork())
{
case 0: /*子进程*/
close(listenfd);
;/*子进程进行其他的操作*/
close(clifd);
exit(0);
break;
case -1:
perror("fork error");
break;
default:/*父进程*/
close(clifd);
break;
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Storm代理
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式