文档介绍::
编写一个简单的聊天程序;
掌握客户-服务器编程的基本原理;
:
查看本机的IP地址:ipconfig;
运行服务器端程序:tcp_server ;
运行客户端程序:tcp_client <服务器的IP地址>
:
#include <>
#include <>
#include <>
#include <sys/>
#include <sys/>
#include </>
#include <>
#include <>
#include <>
#include <sys/>
#include <>
#define SERVER_PORT 2090 /* 服务器端口号*/
#define MAXBUFSIZE 1024 /* 发送和接收缓存的最大长度*/
服务器端程序:
#include ""
char buff[MAXBUFSIZE];
main(argc, argv)
int argc;
char *argv[];
{
int sockfd; /* 监听插口描述符*/
int newsockfd; /* 连接插口描述符*/
struct sockaddr_in serveraddr; /* 服务器地址*/
struct sockaddr_in clientaddr; /* 客户方地址*/
int clientaddrlen = sizeof(clientaddr);
int len;
struct hostent *he;
int mode=0; /* 阻塞模式*/
/* 产生TCP 插口*/
if ((sockfd = socket(, SOCK_STREAM, 0)) < 0)
{
printf("产生插口失败,退出\n");
exit(1);
}
/* 设置服务器地址结构*/
bzero((char *) &serveraddr, sizeof(struct sockaddr_in));
= ;
/* 由系统自动绑定一个IP地址*/
= htonl(INADDR_ANY);
= htons(SERVER_PORT);
/* 绑定插口到本地的指定地址*/
if ( bind(sockfd, (struct sockaddr *)&serveraddr,sizeof(struct sockaddr_in)) < 0)
{
printf("绑定插口失败, 退出\n");
exit(2);
}
/*
通知协议层作好接收连接请求的准备
*/
listen(sockfd, 8);
/* 接收连接请求并服务客户*/
while(1){
if ((n