下面這段程式中,伺服器監聽5000連接埠,用戶端通過TCP串連上去以後,伺服器會向用戶端發送“Hello,success”字串。程式非常簡單,卻實現了準系統。
伺服器端程式如下
#include <sys/socket.h>
#include <netinet/in.h>
int main()
...{
int listensock,connsock;
const char buff[]="Hello,success";
struct sockaddr_in serveraddr;
bzero(&serveraddr,sizeof(serveraddr));
listensock=socket(AF_INET,SOCK_STREAM,0);
serveraddr.sin_family=AF_INET;
serveraddr.sin_addr.s_addr=htonl(INADDR_ANY);
serveraddr.sin_port=htons(5000);
bind(listensock,(struct sockaddr*)&serveraddr,sizeof(serveraddr));
printf("begin to listen on port 5000... ");
listen(listensock,1024);
connsock=accept(listensock,NULL,NULL);
send(connsock,buff,sizeof(buff),0);
close(connsock);
close(listensock);
}
用戶端程式如下
#include <sys/socket.h>
#include <netinet/in.h>
int main(int argc,char *argv[])
...{
int sockfd;
char buffer[100];
struct sockaddr_in serveraddr;
bzero(&serveraddr,sizeof(serveraddr));
serveraddr.sin_family=AF_INET;
serveraddr.sin_port=htons(5000);
inet_pton(AF_INET,"192.168.9.9",&serveraddr.sin_addr);
sockfd=socket(AF_INET,SOCK_STREAM,0);
int value=connect(sockfd,(struct sockaddr *)&serveraddr,sizeof(serveraddr));
if(value==0)
printf("connect succeed ");
else
printf("connect failed ");
recv(sockfd,buffer,sizeof(buffer),0);
printf("%s ",buffer);
close(sockfd);
}