PHP客戶端與C#伺服器端 Socket通訊
阿新 • • 發佈:2019-02-19
using System.Collections.Generic;
PHP程式碼using System.Linq; using System.Text; using System.Net.Sockets; using System.Net; namespace UpdServer { class Program { static void Main(string[] args) { int port = 2000; string host = "127.0.0.1"; ///建立終結點(EndPoint) IPAddress ip = IPAddress.Parse(host);//把ip地址字串轉換為IPAddress型別的例項 IPEndPoint ipe = new IPEndPoint(ip, port);//用指定的埠和ip初始化IPEndPoint類的新例項 ///建立socket並開始監聽 Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//建立一個socket對像,如果用udp協議,則要用SocketType.Dgram型別的套接字 s.Bind(ipe);//繫結EndPoint對像(2000埠和ip地址) s.Listen(0);//開始監聽 Console.WriteLine("等待客戶端連線"); ///接受到client連線,為此連線建立新的socket,並接受資訊 while(true) { Socket temp = s.Accept();//為新建連線建立新的socket Console.WriteLine("建立連線"); string recvStr = ""; byte[] recvBytes = new byte[1024]; int bytes; bytes = temp.Receive(recvBytes, recvBytes.Length, 0);//從客戶端接受資訊 recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes); ///給client端返回資訊 Console.WriteLine("server get message:{0}", recvStr);//把客戶端傳來的資訊顯示出來 string sendStr = "ok!Client send message successful!"; byte[] bs = Encoding.ASCII.GetBytes(sendStr); temp.Send(bs, bs.Length, 0);//返回資訊給客戶端 temp.Close(); } s.Close(); Console.ReadLine(); } } }
<?php $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); $con=socket_connect($socket,'127.0.0.1',2000); if(!$con){socket_close($socket);exit;} echo "Link\n"; socket_write($socket, "hello socket"); while($hear=socket_read($socket,1024)){ echo("Response was:" . $hear . "\n"); } socket_shutdown($socket); socket_close($socket); ?>