添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
//点击开始监听时 在服务端创建一个负责监听IP和端口号的Socket Socket socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPAddress ip = IPAddress.Parse(_ip); //创建对象端口 IPEndPoint point = new IPEndPoint(ip, _port); socketWatch.Bind(point);//绑定端口号 Debug.Log("监听成功!"); socketWatch.Listen(10);//设置监听,最大同时连接10台 //创建监听线程 Thread thread = new Thread(Listen); thread.IsBackground = true; thread.Start(socketWatch); catch { } /// /// 等待客户端的连接 并且创建与之通信的Socket /// Socket socketSend; void Listen(object o) Socket socketWatch = o as Socket; while (true) socketSend = socketWatch.Accept();//等待接收客户端连接 Debug.Log(socketSend.RemoteEndPoint.ToString() + ":" + "连接成功!"); //开启一个新线程,执行接收消息方法 Thread r_thread = new Thread(Received); r_thread.IsBackground = true; r_thread.Start(socketSend); catch { } /// /// 服务器端不停的接收客户端发来的消息 /// /// void Received(object o) Socket socketSend = o as Socket; while (true) //客户端连接服务器成功后,服务器接收客户端发送的消息 byte[] buffer = new byte[1024 * 1024 * 3]; //实际接收到的有效字节数 int len = socketSend.Receive(buffer); if (len == 0) break; string str = Encoding.UTF8.GetString(buffer, 0, len); Debug.Log("服务器打印:" + socketSend.RemoteEndPoint + ":" + str); Send("我收到了"); catch { } /// /// 服务器向客户端发送消息 /// /// void Send(string str) byte[] buffer = Encoding.UTF8.GetBytes(str); socketSend.Send(buffer);
using System;
using System.Collections;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using UnityEngine;
using UnityEngine.UI;
public class SocketClient : MonoBehaviour {
    public InputField input;
    // Use this for initialization
    public void StartClient () {
        bt_connect_Click();
    // Update is called once per frame
    void Update () {
    public void SendMsg()
        bt_send_Click(input.text);
    Socket socketSend;
    private void bt_connect_Click()
            int _port = 6000;
            string _ip = "127.0.0.1";
            //创建客户端Socket,获得远程ip和端口号
            socketSend = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            IPAddress ip = IPAddress.Parse(_ip);
            IPEndPoint point = new IPEndPoint(ip, _port);
            socketSend.Connect(point);
            Debug.Log("连接成功!");
            //开启新的线程,不停的接收服务器发来的消息
            Thread c_thread = new Thread(Received);
            c_thread.IsBackground = true;
            c_thread.Start();
        catch (Exception)
            Debug.Log("IP或者端口号错误...");
    /// <summary>
    /// 接收服务端返回的消息
    /// </summary>
    void Received()
        while (true)
                byte[] buffer = new byte[1024 * 1024 * 3];
                //实际接收到的有效字节数
                int len = socketSend.Receive(buffer);
                if (len == 0)
                    break;
                string str = Encoding.UTF8.GetString(buffer, 0, len);
                Debug.Log("客户端打印:" + socketSend.RemoteEndPoint + ":" + str);
            catch { }
    /// <summary>
    /// 向服务器发送消息
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void bt_send_Click(string str)
            string msg = str;
            byte[] buffer = new byte[1024 * 1024 * 3];
            buffer = Encoding.UTF8.GetBytes(msg);
            socketSend.Send(buffer);
        catch { }