搭建1对1 C\S模型
来源:互联网 发布:mac上浏览图片的软件 编辑:程序博客网 时间:2024/06/07 02:39
chatroom.h头文件:
client_main.c:
#include "../include/chatroom.h"
//客户端
int main(int argc, char** argv)
{
if(argc != 2)
return 0;
int socketfd;
char buff[1000] = {0};
struct sockaddr_in servaddr;
socketfd = socket(AF_INET, SOCK_STREAM, 0);
servaddr.sin_family = AF_INET;//iv4协议
servaddr.sin_port = htons(8000);//8000端口
inet_pton(AF_INET, argv[1], &servaddr.sin_addr);//指定IP地址
if(connect(socketfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) < 0)//链接服务器
{
printf("connect error: %s(errno: %d)\n", strerror(errno),errno);
return 0;
}
while(1)
{
printf("Enter:");
fgets(buff,998,stdin);
send(socketfd,buff,strlen(buff),0);
}
}
server_main.c:
#include "../include/chatroom.h"
//服务器端
int main()
{
int socket_fd, connect_fd;
char buff[1000] = {0};
struct sockaddr_in servaddr;
socket_fd = socket(AF_INET, SOCK_STREAM, 0);//创建一个套接字
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(8000);
if(bind(socket_fd,(struct sockaddr*)&servaddr,sizeof(servaddr)) == -1)//给套接字绑定端口和协议
{
printf("bind error!\n");//如果出错,试试等会再运行
return 0;
}
listen(socket_fd, 10);//监听套接字
connect_fd = accept(socket_fd, NULL, NULL);//同意链接
while(1)
{
if(recv(connect_fd, buff,999,0) == 0)//接受数据
break;//如果链接断开则停止循环
printf("get:%s",buff);//输出接收数据的内容
}
close(connect_fd);
close(socket_fd);
return 0;
}
分别编译客户端和服务器端的源码,最后结果显示如下:
查看服务器IP:
- 搭建1对1 C\S模型
- python C/S模型
- C/S模型
- C/S通讯模型
- C-S基本模型
- C/S模型-TCP
- JAVA对SQL SERVER 2000的备份和恢复-从C/S到B/S(1)
- C/S模型---TCP方式
- C/S模型---UDP方式
- TCP C/S 多线程模型
- C/S通信模型与B/S通信模型介绍
- C/S通信模型与B/S通信模型介绍
- C/S架构框架搭建
- 服务器模型——C/S模型和P2P模型
- B/S和C/S(1)
- 最简单的socket c/s模型
- Socket创建C/S模型的小结
- C/S聊天模型——服务器端
- Android EditText 手机号输入分段显示,回删也能正常显示
- HDU-2017"百度之星"程序设计大赛-复赛-1005-Valley Numer
- dp 数塔 经典动态规划问题
- xss攻击之窃取用户cookie
- Android中自定义checkbox样式
- 搭建1对1 C\S模型
- Hibernate的文件配置(一)
- Ubuntu配置NDK
- sass实现七色卡
- 新类库中的构件
- 51nod 1133 不重叠的线段
- 牛客网牛牛求最长DNA片段的编程题
- TrickGCD(莫比乌斯函数,容斥)
- 补充发件人乱码问题