马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
using UnityEngine;
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
///using PimDeWitte.UnityMainThreadDispatcher;
using UnityEngine.UI;
using UnityEngine.Video;
using System.IO;
using System.Collections;
using UnityEngine.Networking;
using System.Collections.Generic;
using System.Linq;
public class TCPServer : MonoBehaviour
{
// Port to listen for incoming connections
public int serverPort = 8888;
- // TCP listener
- TcpListener listener;
- //public Test Test;
- // Start is called before the first frame update
- void Start()
- {
复制代码 // Test = GetComponent();
StartServer();
// PlayVideo(“初始场景”);
}
}
服务器端从streamingassets下读取图片或者视频需要插入插件UnityMainThreadDispatcher-master插件
using UnityEngine;
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using UnityEngine.UI;
public class TCPClient : MonoBehaviour
{
// IP address and port of the server
public string serverIP; // Replace with the IP address of your computer
public int serverPort;
- // TCP client
- TcpClient client;
- NetworkStream stream;
- public Image signal;
- public Button Quit;
- // Start is called before the first frame update
- void Start()
- {
- Quit.onClick.AddListener(() => QuitApp());
- serverIP = IPReader.ipAddress;
- serverPort = IPReader.port;
- ConnectToServer();
- //ContentServer();
- // InvokeRepeating("Reconnect", 1f, 1f);
- }
- // Method to connect to the server
- void ContentServer()
- {
- try
- {
- client = new TcpClient(serverIP, serverPort);
- Debug.Log("连接成功!");
- stream = client.GetStream();
- signal.color = Color.green;
- // 这里可以添加已连接的处理逻辑
- }
- catch (SocketException)
- {
- Debug.Log("连接失败!");
- signal.color = Color.red;
- // 处理连接失败的情况
- }
- }
- void ConnectToServer()
- {
- while (true)
- {
- try
- {
- client = new TcpClient();
- client.Connect(serverIP, serverPort);
- stream = client.GetStream();
- Debug.Log("Connected to server.");
- signal.color = Color.green;
- // Start listening for incoming messages in a separate thread
- Thread receiveThread = new Thread(new ThreadStart(ReceiveData));
- receiveThread.Start();
- break; // Exit the loop once connected
- }
- catch (Exception e)
- {
- break;
- Debug.LogError("Failed to connect to server: " + e.Message);
- signal.color = Color.red;
- Thread.Sleep(3000); // Wait for 3 seconds before attempting to reconnect
- }
- }
- }
- // Method to receive data from the server
- void ReceiveData()
- {
- byte[] buffer = new byte[1024];
- int bytesRead;
- while (true)
- {
- try
- {
- // Read data from the server
- bytesRead = stream.Read(buffer, 0, buffer.Length);
- string receivedData = Encoding.UTF8.GetString(buffer, 0, bytesRead);
- Debug.LogError("Received data from server: " + receivedData);
- }
- catch (Exception e)
- {
- Debug.LogError("Error receiving data from server: " + e.Message);
- break;
- }
- }
- }
- // Method to send data to the server
- public void SendData(byte[] data)
- {
- if (stream == null || !client.Connected) ConnectToServer();
- if (stream != null && client.Connected)
- {
- byte[] sendData = data;
- stream.Write(sendData, 0, sendData.Length);
- Debug.Log("Sent data to server: " + data);
- }
- }
- // Clean up resources when the application quits
- void OnApplicationQuit()
- {
- if (client != null && client.Connected)
- {
- client.Close();
- }
- }
- public void QuitApp()
- {
复制代码 #if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#else
Application.Quit();
#endif
}
`
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |