- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
#include stdio.h
#include stdlib.h
#include string.h
#include sys/types.h
#include sys/socket.h
#include arpa/inet.h
#include unistd.h
#include signal.h
#define CLIENT_LOGIN 100
#define CLIENT_CHAT 200
#define CLIENT_QUIT 300
#define SERVER_CHAT 400
#define SERVER_QUIT 500
struct node
{
char name[20];
struct sockaddr_in client_addr;
struct node *next;
};
struct message
{
long type;
char name[20];
char mtext[512];
};
struct node *create_list(void);
void insert_list(struct node *, char *, struct sockaddr_in *);
void delete_list(struct node *, char *);
void recv_message(int , struct node *);
void send_message(int , struct sockaddr_in *, pid_t );
void client_login(int , struct node *, struct message *, struct sockaddr_in *);
void client_chat(int , struct node *, struct message *);
void client_quit(int , struct node *, struct message *);
void server_chat(int , struct node *, struct message *);
void server_quit(int , struct node *, struct message *);
void brocast_msg(int , struct node *, struct message *);
void father_func(int sig_no)
{
return ;
}
int main(int argc, const char *argv[])
{
int socket_fd;
pid_t pid;
struct sockaddr_in server_addr;
struct node *head;
if (argc 3)
{
fprintf(stderr, usages : %s ip port\n, argv[0]);
exit(-1);
}
if ((socket_fd = socket(AF_INET, SOCK_DGRAM, 0)) 0)
{
perror(failed to create socket);
exit(-1);
}
head = create_list();
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(atoi(argv[2]));
server_addr.sin_addr.s_addr = inet_addr(argv[1]);
if (bind(socket_fd, (struct sockaddr *)server_addr, sizeof(server_addr)) 0)
{
perror(failed to bind);
exit(-1);
}
if ((pid = fork()) 0) //创建子经常
{
perror(failed to fork pid);
exit(-1);
}
if (pid == 0)
recv_message(socket_fd, head);
else
send_message(socket_fd, server
您可能关注的文档
- 3M综合布线产品及方案优势.doc
- 11 轿车离合器的设计2012届毕业.doc
- 25HZ轨道电路故障处理.doc
- 2010信号与系统课程设计语音滤波系统-最终.doc
- 2013注册安全工程师《安全生产技术》标准答案.doc
- ca6140主轴的加工工艺分析.doc
- CA6140主轴加工工艺分析.doc
- CA6140主轴加工工艺规程 毕业论文.doc
- DCT湿式双离合器毂壳体生产线技术改造项目可研(定稿).doc
- EQ1091离合器设计课程设计.doc
- 海洋工程装备数字化设计与建造集成平台构建研究报告2025.docx
- 聚焦2025:快时尚服装品牌产品设计与品牌形象塑造研究报告.docx
- 2025年汽车车身制造企业精益生产优化策略及案例.docx
- 聚焦2025:应急物流体系建设现状、挑战与风险管理报告.docx
- 职业院校与企业深度合作机制构建与2025年实践创新案例分析报告.docx
- 行政法在管理实践中的应用案例试题及答案.docx
- 房地产市场成交数据归因分析报告:2025年市场热点项目动态分析.docx
- 冷链物流温控技术在冷链物流冷链物流企业质量管理体系中的应用报告.docx
- 行政法学与公共政策的关系及试题及答案.docx
- 生物多样性保护视角下的2025年生态修复工程生态修复效果监测.docx
文档评论(0)