9. 怎么又是socket又是tcp
那么什么叫socket
有时候我们说搞socket编程, socket编程就是tcp的编程吗? tcp/udp是一种协议, 一种约定"我们俩怎么沟通"的约定, 一旦决定好怎么去沟通, 于是开始通信吧, 用的就是socket开始沟通
比如在Linux系统中socket是一种文件, 你可以打开/关闭一个socket, 也可以对socket进行读写. socket读/写的工作方式就是你选择的(tcp/udp). 正常来说"搞"socket分成以下几步:
服务端监听:
首先你要绑定(bind)这个端口:
net.Liten/ListenPacket
然后你接受(Accept)来访的链接:
conn = listener.Accept
然后你读取tcp字节流里的内容:
io.Read
然后把响应写到连接里去:
io.Write
客户端请求: 先
net.Dial
, 然后直接io.Write
端口
无论是tcp还是udp都是需要端口号才能工作的, 理论上你有65535个端口用, 但实际上0~1023被用作一些固定用途, 比如ssh, http等, 如果你尝试监听这些端口除非sudo否则不让你这么做. 而1024~49151就给服务端绑定, 剩下来49152到65535一般用于临时端口, 也就是客户端向服务端发起请求的时候用的
Last updated
Was this helpful?