HTML + javascript(js) tcp client & c# tcp server example
HTML + javascript(js) tcp client & c# tcp server example
資料來源: 01.Copilot
02.https://github.com/jash-git/CS_TCP_project [C# SERVER]
03.https://github.com/jash-git/CS_test_jint-project [JS 產生 熱敏打印機 _ESC 指令/ 標籤機(TSC)指令]
HTML+JS code [傳送字串]
<!DOCTYPE html> <html> <head> <title>TCP Client</title> </head> <body> <h1>TCP Client</h1> <button onclick="sendMessage()">Send Message</button> <script> function sendMessage() { const socket = new WebSocket('ws://192.168.1.106:8888'); socket.onopen = function(event) { socket.send('Hello, Server!'); }; socket.onmessage = function(event) { console.log('Message from server: ' + event.data); }; } </script> </body> </html>
HTML+JS code [HEX 字串]
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>WebSocket Hex Array</title> </head> <body> <script> // Create a WebSocket connection const socket = new WebSocket('ws://localhost:8888'); socket.onopen = () => { console.log('WebSocket connection opened'); // Create a hex array const hexArray = [0x0F, 0x1A, 0x2B, 0x3C]; const buffer = new Uint8Array(hexArray); // Send the hex array socket.send(buffer); console.log('Hex array sent'); }; socket.onmessage = (event) => { console.log('Received:', event.data); }; socket.onclose = () => { console.log('WebSocket connection closed'); }; </script> </body> </html>
==================
C# code
using System; using System.Threading; using System.Net.Sockets; using System.Text; namespace csharp_multi_threaded_server_socket { //資料來源 http://csharp.net-informations.com/communications/csharp-multi-threaded-server-socket.htm class Program { static void Main(string[] args) { TcpListener serverSocket = new TcpListener(8888); TcpClient clientSocket = default(TcpClient); int counter = 0; serverSocket.Start(); Console.WriteLine(" >> " + "Server Started"); counter = 0; while (true) { counter += 1; clientSocket = serverSocket.AcceptTcpClient(); Console.WriteLine(" >> " + "Client No:" + Convert.ToString(counter) + " started!"); handleClinet client = new handleClinet(); client.startClient(clientSocket, Convert.ToString(counter)); } clientSocket.Close(); serverSocket.Stop(); Console.WriteLine(" >> " + "exit"); Console.ReadLine(); } } //Class to handle each client request separatly public class handleClinet { TcpClient clientSocket; string clNo; public void startClient(TcpClient inClientSocket, string clineNo) { this.clientSocket = inClientSocket; this.clNo = clineNo; Thread ctThread = new Thread(doChat); ctThread.Start(); } private void doChat() { int requestCount = 0; byte[] bytesFrom = new byte[10025]; string dataFromClient = null; Byte[] sendBytes = null; string serverResponse = null; string rCount = null; requestCount = 0; while ((true)) { try { requestCount = requestCount + 1; NetworkStream networkStream = clientSocket.GetStream(); networkStream.Read(bytesFrom, 0, (int)clientSocket.ReceiveBufferSize); dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom); dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$")); Console.WriteLine(" >> " + "From client-" + clNo + dataFromClient); rCount = Convert.ToString(requestCount); serverResponse = "Server to clinet(" + clNo + ") " + rCount; sendBytes = Encoding.ASCII.GetBytes(serverResponse); networkStream.Write(sendBytes, 0, sendBytes.Length); networkStream.Flush(); Console.WriteLine(" >> " + serverResponse); } catch (Exception ex) { clientSocket.Close(); Console.WriteLine(" >> " + "Server to clinet(" + clNo + ") closed..." ); break; } } } } }
3 thoughts on “HTML + javascript(js) tcp client & c# tcp server example”
按鈕直接呼叫(CALL) JavaScript(JS)
JS 只能單純使用 WebSocket 它和 Node.js 的純Socket 差別就在於 WebSocket 傳送資料 要有Head 所以並非單純TCP連線
所以要拿JS 的 WebSocket 來時做控制應用 必須在架設一個WebSocket Server 來分析 它的封包
建議使用ESP32 來做一個中介層 實現 硬體翻譯封包功能