目录
一、eclipse配置pyDev
(已经安装并配置了eclipse)
1. 安装
点击前往官网下载
下载:pydev 6.1.0.zip
将pydev 6.1.0.zip解压,将feafures和plugins两个目录的文件复制到eclipse文件夹下相应目录即可。
2.eclipse+pydev配置
注意:windows的用户名、eclipse的workspace都请用英文。否则你后面通过pip安装python包的时候会不成功的。python处理中文也容易出错。
运行eclipse,新建项目
这个时候finish是不可用的,你需要点击
然后点击Quick Auto-Config
点击finish
然后 open
3. eclipse配置
(1)设置workspace文本文件缺省字符集
位置:General->workspace
设置:
Text file encoding 为utf-8
New text file line delimiter 为Unix
(2)设置pep8
位置:PyDev->Editor->Code Analysis
设置:pep8设置为Warning
(3)设置自动完成
位置:PyDev->Editor->Save Actions
设置:
Auto-format editor contents before saving? 勾选上
Update date field? 勾选上
Date field name: 下划线update下划线
Date field format:yyyy-MM-dd HH:mm
(4)设置新建模块的模板
位置:PyDev->Editor->Templates
选择,然后点击edit…按钮,修改内容:
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
u'''
Created on ${date}
@author: ${user}
'''
__author__ = 'xxx <[email protected]>'
__version__ = '1.0.0'
__company__ = u'xxxx'
__updated__ = '1900-01-01 00:00'
if __name__ == "__main__":
pass
${cursor}
(可以自行修改,也可以不设置)
(5)设置代码风格
位置:PyDev->Editor->Code Style->Code Format
Use autopep8.py for code formatting? 勾选上
配置完成。
二、Tcp聊天(不可视)
1. 架构
内容如下:
过程:
(1)创建PyDev Project工程
(2)创建client包和server包
同理,创建server包。
(3)创建PyDev Module文件
client包下创建client
同理,server包下创建server。
2. 代码
Client:
import socket
s = socket.socket()
host = '192.168.43.66'
port = 12345
s.connect((host, port))
print('Linked')
info = ''
while info != 'exit':
print('server:' + info)
send_mes = input()
s.send(send_mes.encode())
if send_mes == 'exit':
break
info = s.recv(1024).decode()
s.close()
Server:
import socket
host = '192.168.43.66'
port = 12345
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host, port))
s.listen(1)
sock, addr = s.accept()
print('Connection built')
info = sock.recv(1024).decode()
while info != 'exit':
print('client:' + info)
send_mes = input()
sock.send(send_mes.encode())
if send_mes == 'exit':
break
info = sock.recv(1024).decode()
sock.close()
s.close()
3. 运行结果
客户端:
服务器:
三、Tcp聊天(可视界面)
1. 安装wxpython
安装较为简单,除了选择安装路径,基本一路next
安装教程:点此查看
安装完成,打开
2. 创建客户端可视界面
构造如下:
如何使用wxFormBuilder生成界面:
只需注意每次要先在左边选中所要放置控件等的父类容器,再在右边选择
例如,创建一个窗体的第一步,选择forms放置一个Frame
然后设置layout
按照顺序添加进去即可。
一些常用知识:
设置layout的线性方向
设置layout或控件所占其空间比例:
占满空间
3. 其他设置
项目的code_generation勾选为Python
选中button,依次在events中为三个button添加click事件
此处可查看python代码
默认wx.style不支持换行,勾选上wxTE_MULTLINE设置换行
4. 导出
保存,生成可视界面文件
再按F8获取noname.py文件
可视界面创建完成。
5. eclipse创建文件
和上面相同的方法构建;
将上面导出的noname.py文件导入(导入之后会报错,需要安装pip和下载wxpython库,方法:win10安装pip&下载wxpython库
创建一个PyDev Module文件,命名为clientUI;
6. 代码
clientUI:
import wx
from client import noname
from socket import *
s = socket(AF_INET, SOCK_STREAM)
class ClientFrame(noname.MyFrame1):
def __init__(self, parent):
noname.MyFrame1.__init__(self, parent)
def btn_in(self, event):
address = self.m_textCtrl1.GetValue() # 服务器的ip地址
port = int(self.m_textCtrl4.GetValue()) # 服务器的端口号
s.connect((address, port))
def btn_send(self, event): # 发送消息
buffsize = 1024 # 接收数据的缓存大小
senddata = self.m_textCtrl3.GetValue() # 获得输入栏的内容
s.send(senddata.encode()) # 发送消息
recvdata = s.recv(buffsize).decode('utf-8') # 接收消息,格式转换
self.m_textCtrl2.AppendText('\n' + recvdata)
self.m_textCtrl3.SetValue("") # 清空输入栏
def btn_out(self, event):
self.Close(True) # 关闭窗口
def main():
app = wx.App(False)
frame = ClientFrame(None)
frame.Show(True)
# 启动窗口
app.MainLoop()
if __name__ == "__main__":
try:
main()
finally:
s.close()
注意自己的button的click事件名称。
server代码与上一个相同。
7. 运行
先运行server,再运行clientUI
开始发送消息
over