Kính gửi tất cả bạn bè. Tôi đang cố gắng liên lạc với máy chủ IEC-60870-5-104 thông qua các ổ cắm TCP. Máy chủ IEC được đặt trên máy chủ cục bộ 127.0.0.1: 2404 và tôi đang cố gắng gửi một tin nhắn hex với chức năng trợ giúp của send (). Vui lòng xem mã của tôi I am trying to communicate with an IEC-60870-5-104 server through TCP sockets. The IEC server is located over the local host 127.0.0.1: 2404 and I am trying to send a HEX message with the help of send() function. Please look at my code #import the socket library
import socket
# create a socket object
s = socket.socket()
print("Socket successfully created")
# connect to the server on local computer, 2404 default port for IEC-104 Server
s.connect(('127.0.0.1', 2404))
# send a hex message in bytes
s.send(b'\x68\x04\x07\x00\x00\x00')
data = s.recv(1024)
s.close()
print( "received data:", data) Bây giờ khi tôi chạy mã, nó kết nối thành công với máy chủ, gửi thông báo hex là 0x68 0x04 0x07 0x00 0x00 0x00 0x68 0x04 0x07 0x00 0x00 0x00 Đáp lại, nó nhận được thông báo Hex 0x68 0x04 0x0B 0x00 0x00 0x00 Tôi đã xác nhận điều này với Wireshark nhưng những gì tôi tìm thấy trên shell của mình là ====== .py ======== Ổ cắm thành công Dữ liệu đã tạo thành công: B'H \ x04 \ x0b \ x00 \ x00 \ x00 '>>> Chỉ có 5 byte được hiển thị, Byte đầu tiên 0x68 là đâu? Tôi phải nhận và hiển thị 0x68 0x04 0x0B 0x00 0x00 0x00, có chuyện gì vậy? Xin vui lòng giúp đỡ I confirmed this with Wireshark but what I find on my shell is ======== RESTART: C:/Users/Shahrukh/Desktop/Python Coding/TCP Server.py ======== Socket successfully created received data: b'h\x04\x0b\x00\x00\x00' >>> Only 5 bytes are shown, where is the 1st byte 0x68? I must receive and show 0x68 0x04 0x0B 0x00 0x00 0x00, whats wrong? Please help
Bài viết: 11.45611,456 Chủ đề: 436436 Tham gia: Tháng 9 năm 2016Sep 2016 Danh tiếng: 442 442 Không chắc chắn, nhưng điều này có thể liên quan đến chuyển đổi lớn, endian nhỏ. Đây là một blog về chủ đề: https://pythontic.com/modules/socket/byt...-cctions Here's a blog on the subject:
https://pythontic.com/modules/socket/byt...-functions Bài viết: 1.8741,874 Chủ đề: 88 Tham gia: Tháng 5 năm 2017May 2017 Danh tiếng: 215 215 Tháng 11-19-2019, 05:33 PM (Bài đăng này được sửa đổi lần cuối: tháng 11-19-2019, 05:33 PM bởi Dead_eye.) (This post was last modified: Nov-19-2019, 05:33 PM by DeaD_EyE.) Tôi đếm 6 byte. Byte đầu tiên là #import the socket library
import socket
# create a socket object
s = socket.socket()
print("Socket successfully created")
# connect to the server on local computer, 2404 default port for IEC-104 Server
s.connect(('127.0.0.1', 2404))
# send a hex message in bytes
s.send(b'\x68\x04\x07\x00\x00\x00')
data = s.recv(1024)
s.close()
print( "received data:", data) 0. Bạn có một máy tính và bạn đang sử dụng ngôn ngữ lập trình. Chỉ cần sử dụng #import the socket library
import socket
# create a socket object
s = socket.socket()
print("Socket successfully created")
# connect to the server on local computer, 2404 default port for IEC-104 Server
s.connect(('127.0.0.1', 2404))
# send a hex message in bytes
s.send(b'\x68\x04\x07\x00\x00\x00')
data = s.recv(1024)
s.close()
print( "received data:", data) 1 để có được độ dài. You have a computer and you're using a programming language. Just use #import the socket library
import socket
# create a socket object
s = socket.socket()
print("Socket successfully created")
# connect to the server on local computer, 2404 default port for IEC-104 Server
s.connect(('127.0.0.1', 2404))
# send a hex message in bytes
s.send(b'\x68\x04\x07\x00\x00\x00')
data = s.recv(1024)
s.close()
print( "received data:", data) 1 to get the length.In [2]: hex(ord('h'))
Out[2]: '0x68' Bức thư đầu tiên là ____10, là 104 trong ASCII và Unicode, là 0x68 trong Hex. Tất cả các ký tự ASCII có thể in trong #import the socket library
import socket
# create a socket object
s = socket.socket()
print("Socket successfully created")
# connect to the server on local computer, 2404 default port for IEC-104 Server
s.connect(('127.0.0.1', 2404))
# send a hex message in bytes
s.send(b'\x68\x04\x07\x00\x00\x00')
data = s.recv(1024)
s.close()
print( "received data:", data) 3 được biểu diễn dưới dạng phiên bản có thể in chứ không phải với giá trị hex. Nếu bạn muốn đại diện cho #import the socket library
import socket
# create a socket object
s = socket.socket()
print("Socket successfully created")
# connect to the server on local computer, 2404 default port for IEC-104 Server
s.connect(('127.0.0.1', 2404))
# send a hex message in bytes
s.send(b'\x68\x04\x07\x00\x00\x00')
data = s.recv(1024)
s.close()
print( "received data:", data) 3 dưới dạng chuỗi hex, bạn có thể sử dụng #import the socket library
import socket
# create a socket object
s = socket.socket()
print("Socket successfully created")
# connect to the server on local computer, 2404 default port for IEC-104 Server
s.connect(('127.0.0.1', 2404))
# send a hex message in bytes
s.send(b'\x68\x04\x07\x00\x00\x00')
data = s.recv(1024)
s.close()
print( "received data:", data) 5 If you want to represent the #import the socket library
import socket
# create a socket object
s = socket.socket()
print("Socket successfully created")
# connect to the server on local computer, 2404 default port for IEC-104 Server
s.connect(('127.0.0.1', 2404))
# send a hex message in bytes
s.send(b'\x68\x04\x07\x00\x00\x00')
data = s.recv(1024)
s.close()
print( "received data:", data) 3 as hex-string, you could use #import the socket library
import socket
# create a socket object
s = socket.socket()
print("Socket successfully created")
# connect to the server on local computer, 2404 default port for IEC-104 Server
s.connect(('127.0.0.1', 2404))
# send a hex message in bytes
s.send(b'\x68\x04\x07\x00\x00\x00')
data = s.recv(1024)
s.close()
print( "received data:", data) 5import binascii
data = b'\x68\x04\x07\x00\x00\x00'
hexstr = binascii.hexlify(data, ' ', 1).decode()
# yes, hexlify return bytes
# the decode step is ugly
print(hexstr) Output: 68 04 07 00 00 00
Gần như đã chết, nhưng quá lười biếng để chết: https://sourceerver.info tất cả con người cùng nhau. Chúng ta không cần các chính trị gia! All humans together. We don't need politicians! Bài viết: 22 Chủ đề: 11 Tham gia: tháng 11 năm 2019Nov 2019 Danh tiếng: 0 0 Ôi Chúa ơi, bây giờ tôi đã nhận được nó, về cơ bản là mã ASCII mà tôi đang nhận được. Cảm ơn bạn rât nhiêu.
|