線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:229
推到 Plurk!
推到 Facebook!

delphi IdTCPServer無法接收Python發送的字串

答題得分者是:GrandRURU
gemini66
一般會員


發表:1
回覆:3
積分:0
註冊:2008-12-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2017-12-20 18:54:35 IP:114.46.xxx.xxx 未訂閱
請問各位大大,我現在用delphi IdTCPServer的主機伺服,要接收Client端的字串,Client端是用Python寫的,
Client端的python可以收到從Server端發出的字串,可是我的Server端卻無法接收到Client端的字串,
連OnExecute都沒去觸發,可是我用delphi IdTCPClient寫一個測試程式放到Client端跟Server端通訊,
都可以沒問題,不知該如何解決,請各位幫忙,謝謝
------
yang_gemini
GrandRURU
站務副站長


發表:237
回覆:1658
積分:1759
註冊:2005-06-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2017-12-21 08:52:01 IP:59.120.xxx.xxx 未訂閱
1. Python version?
2. Python code?

===================引 用 gemini66 文 章===================
請問各位大大,我現在用delphi IdTCPServer的主機伺服,要接收Client端的字串,Client端是用Python寫的,
Client端的python可以收到從Server端發出的字串,可是我的Server端卻無法接收到Client端的字串,
連OnExecute都沒去觸發,可是我用delphi IdTCPClient寫一個測試程式放到Client端跟Server端通訊,
都可以沒問題,不知該如何解決,請各位幫忙,謝謝
gemini66
一般會員


發表:1
回覆:3
積分:0
註冊:2008-12-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2017-12-21 09:37:38 IP:114.46.xxx.xxx 未訂閱
不好意思,底下為python code是別人寫的一個簡單測試程式,我不懂python,所以請大大幫忙看問題出在哪,謝謝


import sys
import socket
import time
import threading


MAIN_ADDRESS = "192.168.3.251"
MAIN_PORT = 1234


def main():

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

address = (MAIN_ADDRESS, MAIN_PORT)

sock.connect(address)

recv_thread = threading.Thread(target=recv_func, args=(sock,))
recv_thread.daemon = True
recv_thread.start()


while (1):
message = "This is test message"
sock.sendall(message)
print >>sys.stderr, 'sending "%s"' % message

time.sleep(2)

sock.close()

def recv_func(sock):

while True:
data=sock.recv(256)
print >>sys.stderr, 'recv "%s"' % data





if __name__ == '__main__':
main()
------
yang_gemini
gemini66
一般會員


發表:1
回覆:3
積分:0
註冊:2008-12-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2017-12-21 11:22:55 IP:114.46.xxx.xxx 未訂閱

===================引 用 gemini66 文 章===================
不好意思,底下為python code是別人寫的一個簡單測試程式,我不懂python,所以請大大幫忙看問題出在哪,謝謝
抱歉!忘了說版本 V 2.7

import sys
import socket
import time
import threading


MAIN_ADDRESS = "192.168.3.251"
MAIN_PORT = 1234


def main():

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

address = (MAIN_ADDRESS, MAIN_PORT)

sock.connect(address)

recv_thread = threading.Thread(target=recv_func, args=(sock,))
recv_thread.daemon = True
recv_thread.start()


while (1):
message = "This is test message"
sock.sendall(message)
print >>sys.stderr, 'sending "%s"' % message

time.sleep(2)

sock.close()

def recv_func(sock):

while True:
data=sock.recv(256)
print >>sys.stderr, 'recv "%s"' % data





if __name__ == '__main__':
main()





------
yang_gemini
GrandRURU
站務副站長


發表:237
回覆:1658
積分:1759
註冊:2005-06-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2017-12-21 16:56:41 IP:59.120.xxx.xxx 未訂閱


在您回覆前已先裝好 Python3,下次請早 ^ ^
簡單測試

===================引 用 gemini66 文 章===================
不好意思,底下為python code是別人寫的一個簡單測試程式,我不懂python,所以請大大幫忙看問題出在哪,謝謝
抱歉!忘了說版本 V 2.7

import sys
import socket
import time
import threading


MAIN_ADDRESS = "192.168.3.251"
MAIN_PORT = 1234


def main():

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

address = (MAIN_ADDRESS, MAIN_PORT)

sock.connect(address)

recv_thread = threading.Thread(target=recv_func, args=(sock,))
recv_thread.daemon = True
recv_thread.start()


while (1):
message = "This is test message"
sock.sendall(message)
print >>sys.stderr, 'sending "%s"' % message

time.sleep(2)

sock.close()

def recv_func(sock):

while True:
data=sock.recv(256)
print >>sys.stderr, 'recv "%s"' % data





if __name__ == '__main__':
main()





編輯記錄
GrandRURU 重新編輯於 2017-12-21 16:57:36, 註解 無‧
GrandRURU 重新編輯於 2017-12-21 16:58:45, 註解 無‧
gemini66
一般會員


發表:1
回覆:3
積分:0
註冊:2008-12-17

發送簡訊給我
#6 引用回覆 回覆 發表時間:2017-12-21 17:29:50 IP:114.46.xxx.xxx 未訂閱
真的太感謝GrangRURU大大的幫忙,終於可以收到了,感恩!
------
yang_gemini
系統時間:2018-01-19 21:10:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!