Golden Blonde 发表于 2014-3-20 21:33:02

【源码】一个简单的TCP点对点聊天(可用于广域网/公网)

本帖最后由 美俪女神 于 2014-3-20 21:35 编辑

某天心血来潮想学一下网络编程,于是坛主不惜逃课教我。。。
最后折腾了两天,弄好了。共享下源代码。
这个程序可以发送文字消息和文件(发送文件的话,直接输入文件所在路径。如果检测到“消息”是一个存在的文件的话,就会把文件的内容发送)。
但是发送文件只在局域网实用,在公网的话,只能发送小于PAGE_SIZE(4KB)的文件,文件所在路径是c:\tempfile.随机后缀名(类似于c:\tempfile.20010101121212)。

使用说明(如果失败则尝试关闭两台电脑的防火墙):
1.先运行server,输入“msg s 8000 0”
2.再运行client,输入“msg c x.x.x.x 8000”,x.x.x.x为server的IP地址(如果用于公网通信,则输入公网IP)

如果用于公网通信,则对server所在网络环境有一定要求:
1.独立IP(3G网卡、长城宽带等不行,VPS可以)
2.可以设置路由器的端口XXXX映射到服务器所在的内网IP(比如映射8000端口到192.168.1.100,192.168.1.100为服务器的内网IP)

最后说下,这个程序没有用太多WINDOWS API(WSA开头的几个API除外),应该可以方便移植到其它平台。代码在WINDOWS下可以直接编译为WIN32和WIN64程序,无任何特殊处理。

0xAA55 发表于 2014-3-23 04:15:20

这个真心不错,它还让我发现了UDP的一个特性:你用sendto发送一个0字节数据包,recvfrom也能收到它。
这个细节我是看了你的实例才发现的

KxIX 发表于 2014-3-23 17:19:21

夜雨 发表于 2014-3-24 00:33:13

嘿嘿~网络初学者收下了~

我有个梦 发表于 2014-3-26 16:28:54

谢谢分享

Anonymous 发表于 2014-3-27 20:22:05

顶一个。。。。。。。。。。。。。

0x0208 发表于 2014-4-18 18:34:06

冒昧的问问,你们都是自学的吗?
看什么书籍呢?

0xAA55 发表于 2014-4-20 23:42:31

0x0208 发表于 2014-4-18 10:34
冒昧的问问,你们都是自学的吗?
看什么书籍呢?

那当然自学!没有哪个老师能教你!

秋水TD 发表于 2014-4-28 11:24:32

收下了,试试看

00QQ 发表于 2014-8-7 09:54:16

厉害、、、

分布式人工智能 发表于 2014-8-25 19:35:00

支持一下,正好研究Winsock API

黑手 发表于 2014-9-13 03:23:37

虽然知道大概不知道细节 但感觉很牛逼的样子

菜鸟痕迹 发表于 2014-11-9 11:56:16

:):):):):)厉害啊,学习了

Larpx 发表于 2015-5-12 12:45:35

自己也写了一个,就是局域网通信的时候总是有乱码,忠于可以有例子借鉴借鉴了{:soso_e100:}

xiawan 发表于 2022-5-13 16:46:58


如此好贴,必须支持~~~

xiawan 发表于 2022-5-13 16:48:19


如此好贴,必须支持~~~
页: [1]
查看完整版本: 【源码】一个简单的TCP点对点聊天(可用于广域网/公网)