Unity TCP

大概流程:

  • 创建套接字
  • 绑定套接字到ip和端口
  • 侦听连接
  • 接收连接
  • 与客户端收发数据
  • 返回等待另一连接
  • 断开连接

 

using System;
using System.Collections;
using System.Collections.Generic;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using UnityEngine;

public class TCPTest : MonoBehaviour {

    private Socket clientSocket;

    private Thread mThread;

    public void StartUp()
    {
        try
        {
            clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            clientSocket.Connect("x.x.x.x", 10000);

            mThread = new Thread(AcceptServerMSG);
            mThread.Start();
        }
        catch (System.Exception)
        {

            throw;
        }
    }

    public void AcceptServerMSG()
    {
        byte[] buffer = new byte[1024 * 64];
        while (true)
        {
            try
            {
                int len = clientSocket.Receive(buffer);
                string str = Encoding.UTF8.GetString(buffer, 0, len);
                Debug.Log("Reveive Msg Form Server: " + str);
            }
            catch (Exception e)
            {
                Debug.Log(e.Message);
            }

        }
    }

    public void Send(string str)
    {
        try
        {
            //将字符串转换为数组;
            byte[] strBytes = Encoding.UTF8.GetBytes(str);
            clientSocket.Send(strBytes);
        }
        catch (Exception e)
        {
            Debug.Log(e.Message);
        }
    }

    public void Close()
    {
        if (clientSocket.Connected)
        {
            clientSocket.Close();
        }

        mThread.Abort();
    }
}

由于创建连接后有接收循环,所以要单独开一个线程,否则主线程会卡死。

初始化:

TCPTest client = new Client();
client.StartUp();

发送消息:

client.Send(str);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值