交换机与路由器的区别 协议编码

1、交换机与路由器的区别 

  交换机的主要功能:是组织局域网,经过交换机内部处理解析信息之后,将信息以点对点、点对多的形式发送给固定端。

  路由器的主要功能:是进行跨网段数据传输,路由选择最佳路径。

  ex:如果你需要将多个电脑连接到一根网线上,用交换机即可。

    如果你只有一个外网IP,但是你有好多台电脑需要上网,用路由器即可。

2、tcp协议及编码

  回环地址:127.0.0.1 只能被本机识别,不会被其它机器识别。

  TCP三次握手:一定是client先发起请求。

    a、客户端发起请求连接服务器的请求。

    b、服务器返回:确认接收到连接请求,并要求连接客户端。

    c、客户端:确认连接请求。

  

  四次挥手:谁先发起断开连接的请求都可以。

    a、客户端:发起断开连接的请求。(如果有数据需要发送,可以接收)

    b、服务器回复:确认收到请求了。

    c、服务器发送:可以断开连接

    d、客户端回复:确认收到信息,断开连接。

  

3、udp协议及编码

  type = SOCK_DGRAM

  udp协议的通信优势:

    允许一个服务器同时和多个客户端通信。

    TCP不行

  

 1 # UDP-client
 2 import socket
 3 sk = socket.socket()
 4 while 1:
 5     msg_s = input(">>>")
 6     sk.sendto(msg_s.encode("utf-8"),("192.168.12.49",8080))
 7     if msg_s.upper() == "Q":
 8          break
9 msg_r,addr = sk.recvfrom(1024) 10 print(msg_r.decode("utf-8")) 11 if msg_r.decode("utf-8") == "Q": 12 break 13 sk.close() 14

 

 1 # UDP-server
 2 import socket
 3 sk = socket.socket(type=socket.SOCK_DGRAM)
 4 sk.bind(("192.168.12.49", 8080))
 5 while 1:
 6     msg_s,addr = sk.recvfrom(1024)
 7     print(msg_s.decode("utf-8"),addr)
 8     if msg_s.decode("utf-8").upper() == "Q":
 9         break
10 
11     msg_r = input(">>>")
12     sk.sendto(msg_r.encode("utf-8"), addr)
13     if msg_r.upper() == "Q":
14         break
15 sk.close()

3、pycharm输出带颜色字体

  \033[字体颜色;背景颜色m  字符串   \033[0m

  \033[32;44m  中国   \033[0m

4、实现一个省去写编码解码的类,这个类继承socket

  

 1 import socket
 2 
 3 class Mysocket(socket.socket):  # 这里实例化的时候不需要传参数
 4     def __init__(self,encoding="utf-8"): # 默认是utf-8
 5         self.encoding = encoding
 6         supper().__init__(type=socket.SOCK_DGRAM)# 默认是UDP模式
 7 
 8     def mysendto(self,msg,addr):
 9         return self.sendto(msg.encode(self.encoding),addr)
10 
11     def myrecvfrom(self,num):
12         msg,addr = self.recvfrom(num)
13         return msg.decode(self.encoding),addr

 

posted on 2018-08-13 16:40  窮山霧繞(静妙)  阅读(875)  评论(0编辑  收藏  举报

导航