Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using System.Net.Sockets;
- using System.Net;
- using System;
- using System.Threading;
- using UnityEngine.UI;
- public class Network : MonoBehaviour {
- UdpClient udpClient = new UdpClient();
- //NetConnection con = new NetConnection("127.0.0.1",20000);
- // Use this for initialization
- void Start () {
- //ConnectTCP("127.0.0.1",80,"GET /response.php HTTP/1.1\r\nHost: localhost:80\r\n\r\n");
- //ConnectUDP("127.0.0.1",20000,"Hello UDP");
- NetConnection con = new NetConnection("127.0.0.1",20000);
- con.Send("Hello");
- }
- // Update is called once per frame
- void Update () {
- }
- void ConnectTCP(String server,Int32 port,String message)
- {
- try
- {
- TcpClient client = new TcpClient(server,port);
- Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);
- NetworkStream stream = client.GetStream();
- stream.Write(data,0,data.Length);
- data = new Byte[1024];
- //String response; // = String.Empty;
- Int32 numbytes = stream.Read(data,0,data.Length);
- String response = System.Text.Encoding.ASCII.GetString(data,0,numbytes);
- Debug.Log("Received: "+response);
- int Result = response.IndexOf("\r\n\r\n");
- if (Result!=-1) Debug.Log("Data: "+response.Substring(Result+4));
- stream.Close();
- client.Close();
- }
- catch(ArgumentNullException e)
- {
- Debug.Log("NullException: "+e);
- }
- catch(SocketException e)
- {
- Debug.Log("SocketException: "+e);
- }
- }
- void ConnectUDP(String Server,Int32 port,String message)
- {
- try
- {
- udpClient.Connect(Server,port);
- Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);
- udpClient.Send(data,data.Length);
- IPEndPoint endPoint = new IPEndPoint(IPAddress.Any,0);
- Byte[] receivedBytes = udpClient.Receive(ref endPoint);
- String response = System.Text.Encoding.ASCII.GetString(receivedBytes);
- Debug.Log(response);
- udpClient.Close();
- }
- catch(Exception e)
- {
- Console.WriteLine(e.ToString());
- }
- }
- public class Receiver
- {
- public UdpClient udpSocket;
- IPEndPoint endPoint;
- public Thread thread;
- public Boolean running = true;
- public Receiver(UdpClient udpClient)
- {
- udpSocket = udpClient;
- endPoint = new IPEndPoint(IPAddress.Any,0);
- thread = new Thread(Thread);
- thread.Start();
- }
- public void Thread()
- {
- while(running)
- {
- try {
- Byte[] receivedBytes = udpSocket.Receive(ref endPoint);
- String response = System.Text.Encoding.ASCII.GetString(receivedBytes);
- Debug.Log(response);
- }
- catch(Exception e)
- {
- Console.WriteLine(e.ToString());
- }
- }
- }
- }
- public class NetConnection
- {
- UdpClient Client = new UdpClient();
- Receiver recv;
- public NetConnection(String server,Int32 port)
- {
- Client.Connect(server,port);
- recv = new Receiver(Client);
- }
- ~NetConnection()
- {
- recv.udpSocket.Close();
- Client.Close();
- recv.running = false;
- recv.thread.Abort();
- recv.thread.Join();
- Debug.Log("terminated");
- }
- public void Send(String message)
- {
- Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);
- Client.Send(data,data.Length);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement