当前位置: 技术问答>linux和unix
求LINUX下SOCKET编程资料
来源: 互联网 发布时间:2015-11-17
本文导语: 最近学校布置了一个关于在LINUX下用C语言借助于SOCKET实现TRACERT地作业 想找有关LINUX下SOCKET编程方面的资料,求各路高手帮忙。 源程序、电子书、或相关编程思路都行。小弟还是这方面的新手,如果能推荐一本入门...
最近学校布置了一个关于在LINUX下用C语言借助于SOCKET实现TRACERT地作业
想找有关LINUX下SOCKET编程方面的资料,求各路高手帮忙。
源程序、电子书、或相关编程思路都行。小弟还是这方面的新手,如果能推荐一本入门书也不错:)
总之谢谢各位帮忙了!!!
想找有关LINUX下SOCKET编程方面的资料,求各路高手帮忙。
源程序、电子书、或相关编程思路都行。小弟还是这方面的新手,如果能推荐一本入门书也不错:)
总之谢谢各位帮忙了!!!
|
一个客户端的程序就可以了,发送一个数据包,根据R返回的信息来跟踪路由器
|
UNIX Network Programming Vol1,3/e,网上下载。
|
《UNIX网络编程》两卷
|
《UNIX网络编程》两卷
|
《UNIX网络编程》
非常优秀
非常优秀
|
给你两段源码,第一段是客户端,第二段是服务器.运行是开两个终端,一个运行客户端,另一个运行服务器,先开服务器,再开客户端.
客户端
#include
#include
#include
#include
#include
#include
#include
void main()
{
int sock_cli;
struct sockaddr_in serv_addr;
sock_cli=socket(AF_INET,SOCK_STREAM,0);
if(sock_cli!=-1)
printf("Socket created OKn");
else exit(1);
bzero(&serv_addr,sizeof(serv_addr));
serv_addr.sin_family=AF_INET;
serv_addr.sin_port=htons(2100);
serv_addr.sin_addr.s_addr=inet_addr("127.0.0.1");
if(connect(sock_cli,(struct sockaddr *)&serv_addr,sizeof(struct sockaddr))!=-1){
printf("Connected OKn");
}
else exit(1);
}
服务器
#include
#include
#include
#include
#include
#include
#include
#define MY_PORT 2100
void main()
{
int sock_serv,new_fd;
unsigned int sin_size;
struct sockaddr_in host_addr,remo_addr;
sock_serv=socket(AF_INET,SOCK_STREAM,0);/*主机建立socket*/
if(sock_serv!=-1)
printf("Socket created OKn");
else
exit(1);
bzero(&host_addr,sizeof(host_addr));
host_addr.sin_family=AF_INET;/*初始化主机socket地址*/
host_addr.sin_addr.s_addr=htonl(INADDR_ANY);
host_addr.sin_port=htons(MY_PORT);
if(bind(sock_serv,(struct sockaddr *)&host_addr,sizeof(struct sockaddr))!=-1)
printf("Binded OKn");
else
exit(1);
if(listen(sock_serv,3)!=-1)
printf("listeningn");
else
exit(1);
while(1){
sin_size = sizeof(struct sockaddr);
new_fd = accept(sock_serv, (struct sockaddr *)&remo_addr, &sin_size);
if(new_fd!=-1){
printf("Acepted OKn");
printf("server: Get connection from %sn", inet_ntoa(remo_addr.sin_addr));}
else
exit(1);
}
}
两段都在gcc下编译通过.
客户端
#include
#include
#include
#include
#include
#include
#include
void main()
{
int sock_cli;
struct sockaddr_in serv_addr;
sock_cli=socket(AF_INET,SOCK_STREAM,0);
if(sock_cli!=-1)
printf("Socket created OKn");
else exit(1);
bzero(&serv_addr,sizeof(serv_addr));
serv_addr.sin_family=AF_INET;
serv_addr.sin_port=htons(2100);
serv_addr.sin_addr.s_addr=inet_addr("127.0.0.1");
if(connect(sock_cli,(struct sockaddr *)&serv_addr,sizeof(struct sockaddr))!=-1){
printf("Connected OKn");
}
else exit(1);
}
服务器
#include
#include
#include
#include
#include
#include
#include
#define MY_PORT 2100
void main()
{
int sock_serv,new_fd;
unsigned int sin_size;
struct sockaddr_in host_addr,remo_addr;
sock_serv=socket(AF_INET,SOCK_STREAM,0);/*主机建立socket*/
if(sock_serv!=-1)
printf("Socket created OKn");
else
exit(1);
bzero(&host_addr,sizeof(host_addr));
host_addr.sin_family=AF_INET;/*初始化主机socket地址*/
host_addr.sin_addr.s_addr=htonl(INADDR_ANY);
host_addr.sin_port=htons(MY_PORT);
if(bind(sock_serv,(struct sockaddr *)&host_addr,sizeof(struct sockaddr))!=-1)
printf("Binded OKn");
else
exit(1);
if(listen(sock_serv,3)!=-1)
printf("listeningn");
else
exit(1);
while(1){
sin_size = sizeof(struct sockaddr);
new_fd = accept(sock_serv, (struct sockaddr *)&remo_addr, &sin_size);
if(new_fd!=-1){
printf("Acepted OKn");
printf("server: Get connection from %sn", inet_ntoa(remo_addr.sin_addr));}
else
exit(1);
}
}
两段都在gcc下编译通过.
|
你找本基于TCP/IP的嵌入式开发,挺不错的,里面用的是FREEBSD库,
|
LINUX网络编程第二版