if len(buf): print("he say:").encode() ClientSock.cendall(data)
时间: 2023-12-26 17:03:25 浏览: 21
这段代码有一些问题。首先,`print("he say:").encode()`应该是`print("he say:")`,因为`print()`函数本身不返回任何值需要编码。其次,`ClientSock.cendall(data)`应该是`ClientSock.sendall(buf)`,因为`data`没有定义。正确的代码应该是这样的:
```
if len(buf):
print("he say:")
ClientSock.sendall(buf)
```
相关问题
import socket import traceback import sys host = '172.22.102.20' port = 51423 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind((host, port)) s.listen(1) ClientSock, ClientAddr = s.accept() while 1: try: buf = ClientSock.recv(1024) if len(buf): print("he say: " + buf.decode()) data = input("I say: ").encode() ClientSock.sendall(data) except: print("Dialogue Over") ClientSock.close() sys.exit(0)这个代码有 File "C:\Users\Administrator\PycharmProjects\chat\serve.py", line 18 if len(buf): ^ IndentationError: unexpected indent
这个错误是因为 if 语句下面的代码缩进不正确。你需要检查一下代码中的缩进是否正确,建议使用 4 个空格来缩进代码。以下是修复后的代码:
```
import socket
import traceback
import sys
host = '172.22.102.20'
port = 51423
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((host, port))
s.listen(1)
ClientSock, ClientAddr = s.accept()
while 1:
try:
buf = ClientSock.recv(1024)
if len(buf):
print("he say: " + buf.decode())
data = input("I say: ").encode()
ClientSock.sendall(data)
except:
print("Dialogue Over")
ClientSock.close()
sys.exit(0)
```
import socket,sys host='?' port=3306 s= socket.socket(socket.AF_INET,socket.SOCK_STREAM) try: s.conent((host,port)) except socket.gaierror,e: print "Address-related error connecting to server:%s"%e sys.exit(1) except socket.error,e: print"Connection error:%s"%e sys.exit(1) while 1: try: data=raw_input("I say") s.send(data) buf=s.recv(1024) if len(buf): print"he say:"+buf excpet: print"Dialogue Over" s.close() sys.exit(0)
这段代码似乎有一些语法错误和缩进问题,我稍微修改了一下:
```python
import socket, sys
host='?'
port=3306
s= socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
s.connect((host,port))
except socket.gaierror, e:
print "Address-related error connecting to server: %s" % e
sys.exit(1)
except socket.error, e:
print "Connection error: %s" % e
sys.exit(1)
while True:
try:
data = raw_input("I say: ")
s.send(data)
buf = s.recv(1024)
if len(buf):
print "He says: " + buf
except:
print "Dialogue Over"
s.close()
sys.exit(0)
```
这个程序的作用是连接到一个 MySQL 数据库服务器,并与其进行简单的对话。你可以尝试运行一下,但需要注意,你需要将 `host` 变量设置为有效的 MySQL 服务器地址才能成功连接。