linux socket編程

linux socket編程

ID:41032392

大小:38.50 KB

頁(yè)數(shù):9頁(yè)

時(shí)間:2019-08-14

linux socket編程_第1頁(yè)
linux socket編程_第2頁(yè)
linux socket編程_第3頁(yè)
linux socket編程_第4頁(yè)
linux socket編程_第5頁(yè)
資源描述:

《linux socket編程》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。

1、最近看了一些網(wǎng)絡(luò)編程的書(shū)籍,一直以來(lái)總感覺(jué)網(wǎng)絡(luò)編程神秘莫測(cè),其實(shí)網(wǎng)絡(luò)編程入門還是很容易學(xué)的,下面這些代碼是我在linux下編寫的,已經(jīng)運(yùn)行過(guò)了,編譯之后就可以運(yùn)行了。有不足之處希望大家多多指出,共同學(xué)習(xí)交流?! CP協(xié)議:  服務(wù)器端:tcp_server.c  #include  #include  #include  #include  #include  intmain(intargc,char*argv[])  {  ints;  intfd; 

2、 intlen;  structsockaddr_inmy_addr;??//服務(wù)器網(wǎng)絡(luò)地址結(jié)構(gòu)體  structsockaddr_inremote_addr;//客戶端網(wǎng)絡(luò)地址結(jié)構(gòu)體  intsin_size;  charbuf[BUFSIZ];//數(shù)據(jù)傳送的緩沖區(qū)  memset(&my_addr,0,sizeof(my_addr));//數(shù)據(jù)初始化--清零  my_addr.sin_family=AF_INET;//設(shè)置為IP通信  my_addr.sin_addr.s_addr=INADDR_ANY;//服務(wù)器IP地址--允許連接到所有本地地址上  my_addr.sin

3、_port=htons(8000);//服務(wù)器端口號(hào)  /*創(chuàng)建服務(wù)器端套接字--IPv4協(xié)議,面向連接通信,TCP協(xié)議*/  if((s=socket(PF_INET,SOCK_STREAM,0))<0)  {  perror("socket");  return1;  }  /*將套接字綁定到服務(wù)器的網(wǎng)絡(luò)地址上*/  if(bind(s,(structsockaddr*)&my_addr,sizeof(structsockaddr))<0)  {  perror("bind");  return1;  }  /*監(jiān)聽(tīng)連接請(qǐng)求--監(jiān)聽(tīng)隊(duì)列長(zhǎng)度為5*/  listen(s,5);

4、  sin_size=sizeof(structsockaddr_in);  /*等待客戶端連接請(qǐng)求到達(dá)*/  if((fd=accept(s,(structsockaddr*)&remote_addr,&sin_size))<0)  {  perror("accept");  return1;  }  printf("acceptclient%s",inet_ntoa(remote_addr.sin_addr));  len=send(fd,"Welcometomyserver",21,0);//發(fā)送歡迎信息  /*接收客戶端的數(shù)據(jù)并將其發(fā)送給客戶端--recv返回接收

5、到的字節(jié)數(shù),sand返回發(fā)送的字節(jié)數(shù)*/  while((len=recv(fd,buf,BUFSIZ,0))>0))  {  buf[len]='