這裡主要是**,網上有原理
socket 有同步,非同步之分,我這是個同步的,同步又有阻塞和非阻塞之分,
這的非阻塞是用select()函式實現的
客戶端:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define servport 2000
#define maxdatasize 100
int main(int argc,char ** argv);
if(argc<2)
if((host=gethostbyname(argv[1]))==null)
if((sockfd=socket(af_inet,sock_stream,0))==-1)
serv_addr.sin_family=af_inet;
serv_addr.sin_port=htons(servport);
serv_addr.sin_addr=*((struct in_addr *)host->h_addr);
bzero(&(serv_addr.sin_zero),8);
if(connect(sockfd,(struct sockaddr *)&serv_addr,sizeof(struct sockaddr))==-1)
while(1)
if(fd_isset(sockfd,&wfds))
}/**
if(f<=0)
if(fd_isset(sockfd,&rfds))
if(fd_isset(sockfd,&wfds))
**//**
if((recvbytes=read(sockfd,&buf,50))==-1)
buf[recvbytes]='\0';
printf("read server val:%s",buf);
printf("enter content:");
**/// int num=0;
// while((content[num++]=getchar())!='\n');
/**if(send(sockfd,&gd,sizeof(struct gpsdata),0)==-1)
**/// write(sockfd,"\n",2);
}return 0;
}//main
伺服器端:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define servport 3333
#define backlog 10
#define datasize 100
main();
int tags;
if((sockfd=socket(af_inet,sock_stream,0))==-1)
my_addr.sin_port=htons(servport);
my_addr.sin_family=af_inet;
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)
if(listen(sockfd,backlog)==-1)
while(1)
printf("received a connection from %s\n",inet_ntoa(remote_addr.sin_addr));
if(!fork())
if(fd_isset(client_fd,&wfds))
break;}}
close(client_fd);
exit(0);}}
}
linux c socket程式設計
ntohl 與 htonl 相反的過程 ntohs 與htons 相反的過程 inet addr char 點分十進位制轉化為整型 inet nota int 整型轉化為點分十進位制 主機位元組序 和 網路位元組序 當主機位元組序埠號位為 0x1234 那麼 網路位元組序就為 0x12 0x34 如...
linux C socket程式設計
這是乙個關於socket的題 要求你自己寫乙個socket程式,然後解析客戶端從瀏覽器位址列提交的資料。要求 在瀏覽器中輸入http localhost 8500 後,你的socket程式向瀏覽器返回乙個網頁,以後就用這個網頁向你寫得這個socket程式提交資料,你的socket程式負責解析這些資料...
linux C socket 程式設計(二)
linux c socket 程式設計 一 linux c socket 程式設計 二 linux c socket 程式設計 三 tcpserver socket bind listen accept write read send recv close tcpclient socket conn...