资源简介
有登录,注册,私聊,群聊等功能。简约而不简单!代码简单易懂,使用多台主机测试过完美运行,使用前请关闭防火墙!!!或者在防火墙里把本程序设置为允许
代码片段和文件信息
#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
相关资源
- netcdf 4.4.1 c/c++类库windows64位绿色版
- 西北工业大学C/C++程序设计大作业包含
- MFC TCP/IP 网络 多人聊天室
- C++网络编程文件之第十一章 防火墙的
- 《C/C++中国象棋程序入门与提高》源代
- Socket网络编程控制台+MFC TCP
- C/C++:Windows编程—调用DLL程序的2种方
- tcp网络编程
- C/C++帮助文档2019版4月出品的超级详细
- 最全 C/C++ API文档
- C++网络编程文件之第七章 网络层协议
- C++Primer中文版(第4版)
- 猫脸变换算法(Arnold)的简单实现C
- MFC实现UDP网络编程
- c++课程设计模拟计算器含源代码、文
- C++ BOOST::Asio库网络编程源代码
- C/C++标准库源代码
- RFIDC/C++门禁系统 RFID源码
- C/C++数据结构_随机10000个数:排序~8大
- 网络编程-----抓包程序C语言版
- 特征码搜索基址 c/c++源代码
- LeetCode题解 C/C++版
- Boost ASIO C++ 网络编程 中文版
- c++P2P网络编程代码
- 课程设计源码.zip
- 小世界网络编程VC++
- C/C++参考手册大全5本集合.chm
- 猜词游戏 C/C++程序设计
- eclipse c/c++ 自动补全,auto activation,自
- MFC/C++画柱状图及饼状图
评论
共有 条评论