Created
September 27, 2020 11:37
-
-
Save ltwlf/979196c0bf289e1b0164c3052dbfcbf5 to your computer and use it in GitHub Desktop.
TcpListener snippet for HTTP
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.IO; | |
using System.Net; | |
using System.Net.Sockets; | |
using System.Threading; | |
using UnityEngine; | |
using static System.Text.Encoding; | |
namespace DefaultNamespace | |
{ | |
public class TcpServer : MonoBehaviour | |
{ | |
private TcpListener _listener; | |
private Thread _listenerThread; | |
private void Awake() | |
{ | |
_listener = null; | |
try | |
{ | |
// Set the TcpListener on port 13000. | |
var ipEndpoint = new IPEndPoint(IPAddress.Any, 8002); | |
// TcpListener server = new TcpListener(port); | |
_listener = new TcpListener(ipEndpoint); | |
_listenerThread = new Thread(StartListener); | |
_listenerThread.Start(); | |
} | |
catch (SocketException e) | |
{ | |
Console.WriteLine("SocketException: {0}", e); | |
} | |
} | |
private void StartListener() | |
{ | |
_listener.Start(); | |
while (true) | |
{ | |
var client = _listener.AcceptTcpClient(); | |
var buffer = new byte[10240]; | |
var stream = client.GetStream(); | |
var length = stream.Read(buffer, 0, buffer.Length); | |
var incomingMessage = UTF8.GetString(buffer, 0, length); | |
var result = "<h1>Hello, world!</h1>"; | |
var response = "HTTP/1.0 200 OK" + Environment.NewLine + | |
"Content-Length: " + result.Length + Environment.NewLine | |
+ "Content-Type: " + "text/html" + Environment.NewLine | |
+ Environment.NewLine | |
+ result | |
+ Environment.NewLine + Environment.NewLine; | |
stream.Write( | |
UTF8.GetBytes(response.ToCharArray()), 0, response.Length); | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment