linux c socket编程详解,Linux c 网络socket编程
#include int main()
{
int sockfd,new_fd;
struct sockaddr_in my_addr;
struct sockaddr_in their_addr;
int sin_size;
//建立TCP套接口
if((sockfd = socket(AF_INET,SOCK_STrEAM,0))==-1)
{
perror("socket");
exit(1);
}
//初始化結(jié)構(gòu)體,并綁定2323端口
my_addr.sin_family = AF_INET;my_addr.sin_port = htons(2323);
my_addr.sin_addr.s_addr = INADDr_ANY;bzero(&(my_addr.sin_zero),8);
//綁定套接口
if(bind(sockfd,(struct sockaddr *)&my_addr,sizeof(struct sockaddr))==-1)
{
perror("bind");
exit(1);
}
//創(chuàng)建監(jiān)聽套接口
if(listen(sockfd,10)==-1)
{
perror("listen");
exit(1);
}
//等待連接
while(1) {
sin_size = sizeof(struct sockaddr_in);
perror("server is run");
//如果建立連接,將產(chǎn)生一個(gè)全新的套接字
if((new_fd = accept(sockfd,(struct sockaddr *)&their_addr,&sin_size))==-1)
{
perror("accept");
exit(1);
}
//生成一個(gè)子進(jìn)程來(lái)完成和客戶端的會(huì)話,父進(jìn)程繼續(xù)監(jiān)聽
if(!fork())
{
//讀取客戶端發(fā)來(lái)的信息
if((numbytes = recv(new_fd,buff,strlen(buff),0))==-1)
{
perror("recv");
exit(1);
}
printf("%s",buff);
//將從客戶端接收到的信息再發(fā)回客戶端
if(send(new_fd,buff,strlen(buff),0)==-1)
perror("send");
close(new_fd);
exit(0);
}
close(new_fd);
}
close(sockfd);
}
總結(jié)
以上是生活随笔為你收集整理的linux c socket编程详解,Linux c 网络socket编程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何取消Notepad++红色下划线(错
- 下一篇: C语言进制的格式字符,GB汉字文件转换成