TCP网络编程
来源:互联网 发布:c语言 ip地址 合法性 编辑:程序博客网 时间:2024/06/08 18:17
TCP网络编程基本模型:
UNIX环境高级编程435页。
程序例程:
服务器:
#include
#include
#include
#include
#include
#include
#define portnumber 3333
int main( int argc, char **argv )
{
int sockfd;
int new_fd;
int sin_size;
int nbytes;
char buffer[1024];
structsockaddr_in server_addr;
structsockaddr_in client_addr;
if((sockfd=socket(AF_INET, SOCK_STREAM, 0)) == -1 )
{
perror("socket error\n" );
exit( 1);
}
bzero(&server_addr, sizeof(struct sockaddr_in) );
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = htonl( INADDR_ANY );
server_addr.sin_port = htons( portnumber );
if(bind(sockfd, (struct sockaddr *)(&server_addr),sizeof(struct sockaddr)) == -1 )
{
perror("bind error\n" );
exit( 1);
}
if(listen(sockfd, 5) == -1 )
{
perror("listen error\n" );
exit( 1);
}
sin_size =sizeof( struct sockaddr_in );
while( 1)
{
if((new_fd=accept(sockfd, (struct sockaddr*)(&client_addr), &sin_size)) == -1)
{
perror("accept error\n" );
exit( 1);
}
fprintf(stdout," server get %s ", inet_ntoa(client_addr.sin_addr) );
if((nbytes=read(new_fd, buffer, 1024)) == -1 )
{
perror("read error\n" );
exit( 1);
}
buffer[nbytes] = '\0';
printf("received %s\n", buffer );
close(new_fd );
}
exit( 0);
}
客户端:
#include
#include
#include
#include
#include
#define portnumber 3333
int main( int argc, char **argv )
{
intsockfd;
charbuffer[1024];
structsockaddr_in server_addr;
sockfd =socket( AF_INET, SOCK_STREAM, 0 );
UNIX环境高级编程435页。
程序例程:
服务器:
#include
#include
#include
#include
#include
#include
#define portnumber 3333
int main( int argc, char **argv )
{
}
客户端:
#include
#include
#include
#include
#include
#define portnumber 3333
int main( int argc, char **argv )
{