#include <iostream>
#include <winsock2.h>
using namespace std;
#pragma comment(lib, "ws2_32.lib")
char g_ip[20]; //对方ip地址
DWORD WINAPI Receive(
LPVOID lpParameter // thread data
)
{
SOCKET *psock = (SOCKET*)lpParameter;
char buf[100];
SOCKADDR_IN recv_addr;
int len = sizeof(SOCKADDR);
char ip[30];
while (1)
{
recvfrom(*psock, buf, 100, 0, (SOCKADDR*)&recv_addr, &len);
strcpy(ip, inet_ntoa(recv_addr.sin_addr));
cout << ip << " say:" << buf << endl;
}
return 0;
}
DWORD WINAPI Sendto(LPVOID lpParameter)
{
SOCKET *psock = (SOCKET*)lpParameter;
char buf[100];
SOCKADDR_IN addr;
addr.sin_family = AF_INET;
addr.sin_addr.S_un.S_addr = inet_addr(g_ip);
addr.sin_port = htons(6000);
while (1)
{
cin.getline(buf, 100);
sendto(*psock, buf, 100, 0, (SOCKADDR*)&addr, sizeof(SOCKADDR));
}
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
{
return 0;
}
if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 )
{
WSACleanup( );
return 0;
}
cout << "please input ip:";
cin >> g_ip; //对方ip地址
SOCKET sock = socket(AF_INET, SOCK_DGRAM, 0);
SOCKADDR_IN addr;
addr.sin_family = AF_INET;
addr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
addr.sin_port = htons(6000);
if (bind(sock, (SOCKADDR*)&addr, sizeof(SOCKADDR)) == SOCKET_ERROR)
{
cout << "bind fail!" << endl;
return 0;
}
HANDLE hThreadRecv = CreateThread(NULL, 0, Receive, &sock, 0, NULL); //接收消息线程
HANDLE hThreadSend = CreateThread(NULL, 0, Sendto, &sock, 0, NULL); //发送小时线程
WaitForSingleObject(hThreadRecv, INFINITE); //阻塞主线程
return 0;
}相关推荐
基于 Python 控制台的 Socket 聊天管理系统
此程序实现了一个简单的 Socket 聊天系统,具有基础的多客户端通信功能,代码简洁清晰,非常适合作为课程设计作业。该程序包括服务端和客户端的代码,服务端负责管理客户端连接和消息转发,客户端用于与其他客户端通信。self.clients = {} # 存储连接的客户端 {address: socket}print(f"服务器启动,监听地址:{host}:{port}")print(f"成功连接到服务器:{host}:{port}")"""向所有客户端广播消息""""""接收来自服务端的消息"""
java 利用socket去访问一个页面,并在控制台输出
简易聊天程序_java网络编程多线程
java编译的控制台版多人简易聊天程序,运用了ServerSocket和Socket网络编程,还用了多线程,I/O流等技术.可以私聊,可以群聊!
用消息在Win32控制台程序多线程间进行通讯
#include #include //#include //#include #define UM_MSG1 (WM_USER + 1)#define UM_MSG2 (WM_USER + 2)DWORD WINAPI Thread1(LPVOID para){ DWORD dwThreadId = *(DWORD *)para; DWO
使用Socket和ServerSocket实现多人聊天的聊天室程序
基于TCP的网络编程,使用Socket和ServerSocket实现多人聊天的聊天室程序,Java网络编程章节训练的小程序
Socket和多线程的聊天室
没有可视化窗口,基于控制台输入的的聊天室,使用socket套接字和多线程完成在线聊天功能,支持私聊和群聊,功能简单请见谅。
小小的java socket聊天程序
本程序是基于java语言的Socket聊天程序,采用TCP传输协议,实现两个人之间的信息交互。在形成最终结果之前,我经历了两个过程程序,两个过程均为半成品,他们反映了我整个课程设计中的思考过程,在一个较为系统思考过程后,socket思想一层一层加固,让我映像很深刻,收获很多。在此文档中,我将演示我两个过程程序的思考过程,然后对源代码进行讲解,但最终上传的代码为制成品。 在
C++ Socket 多线程多机聊天
本程序使用了Socket,多线程等技术,功能是在控制台中实现多机聊天的功能,环境为windows+vs2013
【网络编程】练习——UDP协议控制台聊天程序
需求:通过UDP传输方式,实现一个简单的控制台聊天程序 思路: 发送端: 1.建立UDP的socket服务 2.提供数据 并将数据封装到数据包中 3.通过socket服务的发送功能将数据包发出 4.关闭资源 接收端: 1.建立UDP的socket服务,设置端口号 2.定义一个数据包,存储接收到的字节数据 3.将受到的数据存入已定义好的数据包中 4.通过数据包对象的特有功能,将不同的数据取...
C++基于socket的多线程聊天程序
Windows下基于socket的多线程群聊程序,环境是VC6.0。
简单多线程socket聊天室程序(c语言)
server.c client.c Makefile 在linux下编译通过,C语言编写,短小精练。 server实现数据转发,使用了socket中的accept,select,线程中的线程分离属性(PTHREAD_CREATE_DETACHED)等 client实现读和写的异步,也使用了线程分离属性。 直接实现多个client终端对话。 可做为新人学习的参考。
C++网络聊天室控制台版源代码
用C++和socket网络编程、多线程技术组成的网络聊天室控制台版,1000行之内。之所以在控制台运行而不是用MFC等图形库是为了方便从底层理解socket编程和多线程,只有从深入理解技术原理后才能在广泛的实际应用如鱼得水,而不局限于某个特定图形库提供的网络接口。 注意:因为是控制台,所以有些不可避免的显示错误(如输入内容过长影响界面等,但这些仅仅只是控制台上的局限,实际
使用TCP协议实现多人网络聊天(带界面)
本资源采用的是TCP来实现聊天,而且是多人聊天,界面采用GUI进行设计,总体效果还可以
网络编程05:我终于模拟出了QQ聊天——基础篇
本篇文章主要用UDP基础知识来模拟两人聊天 需求分析 设计一个程序,实现两人聊天,两人可以相互发信息,接收对方的信息,以及退出聊天 设计分析 一个人既可以发送信息也可以接收信息——多线程** 给这个人设置两个线程,一个接收信息的线程,一个发送信息的线程,建立两个运行终端,执行这两个线程即可 这里设置了两个角色:老师和学生 package UDP多线程在线咨询; public class TalkStudent { public static void main(String[] args) {.
Java聊天室—-多线程实现群聊、私聊、系统消息 (服务端完整代码奉上)
是不是试了很多次都没有达到自己想要的效果呢? 没关系,看到这你就已经有收获了 文章目录一、动图效果展示二、服务端代码(核心)三、bug吐槽四、分享交流 一、动图效果展示 二、服务端代码(核心) 光说不练歪把子 package socket_study03; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.conc
当MATLAB遇见ROS2:一场跨平台实时仿真的技术融合与创新实践
本文探讨了MATLAB/Simulink与ROS2在跨平台实时仿真中的技术融合与创新实践。重点介绍了在Windows+WSL2异构环境下构建高可靠性联合仿真系统的架构设计、PX4仿真环境与DDS中间件的集成方法,以及MATLAB R2024b对ROS2深度集成的实战技巧,为复杂机器人系统的开发提供了高效解决方案。
java控制台输入多个数,java实现的多人聊天(控制台输入)
在学习android时,想做一个多人聊天室,不知如何动手想先做一个纯java的简单多人聊天室,理理思路通过Socket套接字进行数据传输用到的知识点是:Socket,ServerSocket, 多线程服务器程序:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import ja...
手把手教你用HiNet实现图像隐藏:可逆神经网络实战指南(附代码)
本文提供了一份基于HiNet框架实现图像隐藏的实战指南。通过详细解析可逆神经网络原理,手把手指导环境搭建、模型构建、损失函数设计及训练流程,并附有完整代码。该方法利用单个可逆网络统一隐藏与恢复过程,结合小波变换提升隐蔽性,为信息隐藏应用提供了高效解决方案。
计算机网络课设避坑指南:如何用Dev C++ 5.11快速完成聊天程序实验
本文提供了一份详细的Dev C++ 5.11实现网络聊天程序的避坑指南,涵盖开发环境配置、Winsock初始化、多线程处理等关键步骤。通过实战代码示例和常见问题解决方案,帮助计算机专业学生高效完成计算机网络课设,避免常见错误。
【鼠标在不点击的情况下,直接移动到QT控件上不显示提示信息】
有时明明已经调用了setToolTips方法,鼠标移动到QT控件上仍然不会有提示信息,这时候就需要具体分析下。重点就是标红的这段话,大概意思就是。.h文件中加入鼠标移动事件的定义。.cpp文件中实现该事件。
常见的十大量化投资策略(附源码)
量化投资策略是利用量化的方法,进行金融市场的分析、判断和交易的策略、算法的总称。著名的量化投资策略有以下10种(注:策略源码模板不能直接用于实盘交易,仅供探讨交流) 01、海龟交易策略 海龟交易策略是一套非常完整的趋势跟随型的自动化交易策略。这个复杂的策略在入场条件、仓位控制、资金管理、止损止盈等各个环节,都进行了详细的设计,这基本上可以作为复杂交易策略设计和开发的模板。 海龟交易策略源码:https://www.myquant.cn/docs/python_strategyies/110 0.
【Java】Socket+多线程实现控制台聊天室
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5827212.html 另:具体代码实现已移植github:https://github.com/ygj0930/Chat-Room-in-Java ,大家fork之余记得给我个star呀~ 聊天室程序的结构图: 架构解释: Server服务器相当于一个中转站,Clie...
用Obsidian搭建个人知识库:AI时代如何构建你的第二大脑
AI 时代,真正有价值的不只是获取知识,而是沉淀属于自己的知识体系。本文从 Obsidian 安装、目录设计、双向链接、插件推荐到 AI 联动、多端同步,手把手教你打造高效、可持续进化的个人知识库,让知识真正为你所用。🧠
717



被折叠的 条评论
为什么被折叠?



