socket局域网黑窗口聊天

该博客介绍了一个简单的局域网聊天应用,使用C++的socket实现。应用包括一个服务端和两个客户端,其中一个客户端用于显示聊天内容,另一个用于发送消息。用户需在相同局域网内运行,并确保两台电脑都连接到服务端。可能存在并发发送消息时的显示顺序问题。
摘要由CSDN通过智能技术生成

只能实现同一局域网内的两台电脑的聊天

聊天内容通过一个黑窗口显示,另一个黑窗口用来发送消息

有点死板,必须要两台电脑都接上服务端才行

一个服务端,两个客户端(其实应该是4个吧,显示窗口也是一个客户端)

效果如图


食用方法:

TServer:服务端
Display_TCP:显示聊天内容的一个客户端(display.cpp的生成文件)
TClinet:用于发送消息的客户端


只能用于两台同一局域网的电脑聊天,而且两台电脑都要连接到服务端才行


/********************************************************************/
先一台电脑启动服务端TServer
然后再启动Display_TCP,根据提示先输入开启服务端的电脑的IP地址
    这里是有做防止非法操作的,但是并不严谨,所以还请输入正确
的ip地址,若输入出错则需删除当前文件夹内的ipconfig.txt文件,再
重新打开,也可以直接把文本内容改为正确的ip地址


输入正确的ip地址后,会自动启动TClient


然后再在另一台同一局域网的电脑里启动Display_TCP,步骤同上
之后就可以发消息了,消息内容不限长短


两边同时发送的话应该会有问题,虽然还没有尝试,但是推测应
该分两种情况
1、先连接进服务端的电脑的消息会先显示,然后再显示后连接的
2、显示后连接的客服端的一部分消息,然后完全显示先连接的,
再显示后连接客户端剩下的消息
/********************************************************************/

头文件WSAStartup.h

#ifndef WSASTARTUP_H
#define WSASTARTUP_H


#include<iostream>
#include<winsock.h>

#define SIZE_BUF 40

#pragma comment(lib,"ws2_32.lib")

class Wsastart {
public:
	Wsastart() {
		WSADATA data;
		WORD v = MAKEWORD(2, 0);
		if (WSAStartup(v, &data)) {
			std::cout << "初始化失败" << std::endl;
			exit(0);
		}
	}
	~Wsastart() {
		WSACleanup();
	}
	static bool check_ip(char *ip);
};

enum SEND_NAME {	
	yes = 0,
	no
};


#endif

check.cpp

#include"WSAStartup.h"

bool Wsastart::check_ip(char *ip) {
	int count = 0;
	while (*ip != '\0') {
		if (*ip == '.') {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值