python socket编程心得

这两天试了下python的socket编程,写了个基于命令行的简单聊天室功能,记录下心得:

1)网上的python socket编程的例子过于简单了,其实实现不了“多个终端”的socket服务,socket不论建立连接,还是连接之后监听消息、发送消息都是阻塞状态的,所以为了实现多个终端的socket服务需要使用多线程,一个终端对应一个线程;

2)python socket的api非常底层,它实现不了“事件驱动”,不能像html5的接口那么简单,只简单地监听下onmessage就可以了,它需要使用一个while True不停地循环,用这种循环实现“监听”;

3)python socket的api只提供了非常底层的功能,所以如果想要实现一个聊天室,每个终端发送消息出去,其它聊天室中的终端都可以收到消息,需要自己实现一个观察者模式,这个python socket并没有封装,需要我们自己来做这个工作;

4) 如果在内网起一个socket server,在内网中其他电脑可以使用192.168.x.x的内网地址连上server,但如果在外网想访问内网的server,用外网地址是没法直接连上server的,因为server在内网中,而内网的诸多电脑使用的是同一个公网地址,所以会找不到socket server(其它服务例如http服务、ftp服务亦然),需要在路由器上设置一个端口映射,这样就可以顺利连内网server了。

转载于:https://www.cnblogs.com/cly84920/archive/2010/11/07/4426654.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值