资源简介
有登录,注册,私聊,群聊等功能。简约而不简单!代码简单易懂,使用多台主机测试过完美运行,使用前请关闭防火墙!!!或者在防火墙里把本程序设置为允许

代码片段和文件信息
#include
#include
#include
#include
#include
#pragma comment(lib“ws2_32.lib“)
using namespace std;
#define DEFAULT_SPORT 5055
#define DEFAULT_CPORT 5056
#define BUFFER_LENGTH 1024
int main()
{
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2 2) &wsaData) != 0)
{
cout << “Failed to load Winsock.“ << endl;
return 0;
}
//建立显示器端地址
struct sockaddr_in receiver;
//读取分配好的端口
ifstream in(“port.txt“);
string receiver_port;
string username;
getline(in receiver_port);
getline(in username);
in.close();
remove(“port.txt“);
int receiver_port_int = atoi(receiver_port.c_str());
receiver.sin_family = AF_INET;
receiver.sin_port = htons(receiver_port_int); //htons()函数把一个双字节主机字节顺序的数转换为网络字节顺序的数
receiver.sin_addr.s_addr = htonl(INADDR_ANY); //htonl()函数把一个主机字节顺序的数转换为网络字节顺序的数
SOCKET rSocket = socket(AF_INET SOCK_DGRAM 0);
if (rSocket == INVALID_SOCKET)
{
cout << “socket()Failed:“ << WSAGetLastError() << endl;
return 0;
}
if (bind(rSocket (LPSOCKADDR)&receiver sizeof(receiver)) == SOCKET_ERROR)
{
cout << “bind()Failed:“ << WSAGetLastError() << endl;
return 0;
}
char recv_buf[BUFFER_LENGTH]; //接收数据的缓冲区
memset(recv_buf 0 sizeof(recv_buf)); //初始化接收缓冲区
struct sockaddr_in ser; //客户端地址
int ser_length = sizeof(ser); //客户端地址长度
cout << “----------------------------------------“ << endl << endl;
cout << “ 显示器---“ << username << endl << endl << endl;
cout << “----------------------------------------“ << endl << endl;
while (true) //进入一个无限循环,进行数据接收和发送
{
int iRecv = recvfrom(rSocket recv_buf BUFFER_LENGTH 0 (SOCKADDR*)&ser &ser_length);
string transmessage(recv_buf);
if (iRecv == SOCKET_ERROR)
{
cout << “recvfrom()Failed:“ << WSAGetLastError() << endl;
break;
}
else if (transmessage == “exit“) break;
else
cout << transmessage << endl;
}
closesocket(rSocket);
WSACleanup();
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2220 2018-12-28 09:20 基于UDP的控制台聊天程序源代码\客户端\receiver.cpp
文件 1929243 2018-12-28 09:20 基于UDP的控制台聊天程序源代码\客户端\receiver.exe
文件 10390 2018-12-28 11:55 基于UDP的控制台聊天程序源代码\客户端\sender.cpp
文件 2049828 2018-12-28 12:26 基于UDP的控制台聊天程序源代码\客户端\sender.exe
文件 14718 2018-12-28 12:20 基于UDP的控制台聊天程序源代码\服务器\server.cpp
文件 1986293 2018-12-28 12:20 基于UDP的控制台聊天程序源代码\服务器\server.exe
目录 0 2018-12-28 12:26 基于UDP的控制台聊天程序源代码\客户端
目录 0 2018-12-28 12:20 基于UDP的控制台聊天程序源代码\服务器
目录 0 2018-12-28 09:20 基于UDP的控制台聊天程序源代码
----------- --------- ---------- ----- ----
5992692 9
相关资源
- 基于mfc的多线程文件传输
- C++多线程网络编程Socket
- TCP/IP客户端和服务器端源代码,好用
- modbus tcp/ip 简单通讯
- windows网络编程_文件传输
- TCP/IP与串口调试
- 北京化工大学计算方法(C/C++)讲义
- GBT 28169-2011 嵌入式软件 C语言编码规范
- XUnZip Zip解压缩.rar
- Windows_API_函数大全 C/C++
- C语言程序设计教材习题参考答案.do
- 基于MFC的VC++仿QQ浏览器源码(雏形)
- 高效FFT的C/C++代码实现包括基2的DIF和
- c/c++开发网络验证和本地验证
- 操作系统存储管理实验报告c/c++
- C++编写的万年历源码
- C语言进阶源码---基于graphics实现图书
- 井字棋三连棋的AI实现,C/C++
- 《水果忍者》设计报告.doc
- MFC实现的红绿灯程序
- Win32简易画图程序
- C++网络爬虫项目
- 泡泡堂(炸弹人)小游戏C/C++完整源码
- 使用C/C++读取BITMAP的内容
- VC图像处理-用Canny算子提取边缘
- C/C++视频教程
- 个人总结的一些C/C++编码规范
- 高斯消去法求解线性方程组C/C++程序输
- celrityC/C++源码查看工具
- 网络编程MFC 实验四 FTP客户端功能实现
评论
共有 条评论