最近做了一个 websocket 相关的项目,发现自己的网络编程水平比较差,目前想要重新学习一下, 最后希望用 java 实现一下 tcp 协议,希望大家能给一点指导建议。
1
kljsandjb 2023-08-09 21:53:07 +08:00 via Android 1
参考参考 lwIP
|
2
pagxir 2023-08-09 21:53:38 +08:00
Web socket 不需要实现 tcp 协议吧。难道你 Java 是跑在裸板上,连个操作系统没有?
|
3
aminobody 2023-08-09 22:23:34 +08:00 via Android
cs144
|
4
opengps 2023-08-09 23:29:39 +08:00 via Android
tcp 协议你只需要知道怎么收发,怎么异步收发。处理好稳定性,自动断线重建。再就是知道怎么定义自己的数据通信协议解析规则,也可以说通信规约,这就足够了
|
5
Pony69 2023-08-09 23:37:56 +08:00 via Android
Java 的话,要不尝试一下 netty 。
|
6
Znemo 2023-08-10 01:04:47 +08:00
普遍意义上说的 TCP 协议是操作系统实现的。
|
9
Rehtt 2023-08-10 08:29:28 +08:00
tcp 是操作系统内核实现的,java 只是调用系统提供的 socket 接口
|
10
selca 2023-08-10 08:39:08 +08:00 via Android
要不要试试用 kotlin+netty 实现 trojan 代理协议,跟 Java 差不多。
https://github.com/selcarpa/surfer 这是仓库地址,当前完整的介绍文档正在筹划中,里面也有很多坑没填,比如 kcp ,比如 UDP 代理。 |
11
Nazz 2023-08-10 08:53:12 +08:00 via Android
实现个可靠 UDP 得了
|
12
ybz 2023-08-10 09:34:12 +08:00
好家伙,手撸 tcp 协议,很复杂的兄弟,可靠传输、流量控制、拥塞控制、连接建立。。。。光一个可靠传输就让人头皮发麻。
|
13
wanguorui123 2023-08-10 10:37:57 +08:00
quic
|
14
iOCZ 2023-08-10 11:44:21 +08:00
会用 socket 就行了,想自己实现 TCPIP 协议栈的话。。。。想屁吃
|
15
mmdsun 2023-08-10 13:23:59 +08:00 via iPhone
tcp ip 详解卷 2 ,就是讲实现的照着撸一遍。再试着用 Java 写吧
|
16
Saturn72 2023-08-11 09:09:45 +08:00
可以看下中国大学慕课上哈工大的计网课程,讲的还是很全面的,当年上大学没认真学计网,上半年在 MOOC 上补的课,讲的真的很好
|
17
smirkcat 2023-08-11 11:51:43 +08:00
java 就别了 别给自己找没用事做。。。
|
18
xmt328 2023-08-11 13:58:35 +08:00
从问题来看,我觉得 OP 先要了解下 websocket 和 Tcp 的关系
|
19
xsen 2023-08-11 16:47:16 +08:00
1. 实现 tcp server ,可支持多客户端连接及一定并发量
2. 实现 tcp client ,可实现多客户端(如数百、数千),支持重传、重连 3. 实现 request/reply 、主动推送消息模型 4. 设计 binary protocol 并实现( magic 、header-cmd/subcmd 、crc 、seqno 等) |