C# Socket模块
发布日期:2021-06-30 19:37:51 浏览次数:2 分类:技术文章

本文共 2756 字,大约阅读时间需要 9 分钟。

服务端

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Runtime.InteropServices;using System.Net;using System.Net.Sockets;namespace ConsoleApplication2{    class Program    {        static void Main(string[] args)        {            //本机IP            IPAddress ip = IPAddress.Parse("192.168.0.154");            //IP地址跟端口的组合            IPEndPoint iep = new IPEndPoint(ip, 9000);            //创建Socket            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);            //绑定Socket            socket.Bind(iep);            //服务器已经做好接收任何连接的准备            socket.Listen(10);            //执行accept方法            Socket Client = socket.Accept();            while (true)            {                byte[] message = new byte[1024];                NetworkStream networkStream = new NetworkStream(Client);                int len = networkStream.Read(message, 0, message.Length);                if (len > 0)                {  byte数组转换成string                //string output = System.Text.Encoding.Unicode.GetString(message);                //Console.WriteLine("一共从客户端接收了" + len.ToString() + "字节。接收字符串为:" + output);                }            }        }    }}

客户端

using System;using System.Collections.Generic;using System.Text;using System.Net;using System.Net.Sockets;using System.Threading;using UnityEngine;class ClientNet{    private Socket init()    {        Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);        return clientSocket;    }    public bool Connect(string host,int port)    {        if (m_socket == null)            m_socket = init();        //要连接的远程IP        IPAddress remoteHost = IPAddress.Parse(host);        //IP地址跟端口的组合        IPEndPoint iep = new IPEndPoint(remoteHost, port);        try         {            m_socket.Connect(iep);            return true;        }        catch (System.Exception ex)        {            Debug.LogError("connect error");            return false;        }    }    public void SendData(byte[] bytes)    {        NetworkStream netstream = new NetworkStream(m_socket);        netstream.Write(bytes, 0, bytes.Length);    }    public void CloseSocket()    {        m_socket.Shutdown(SocketShutdown.Both);        m_socket.Close();    }    private Socket m_socket;    private static ClientNet s_instance;    private static readonly byte[] c_staticLocker = new byte[0];    public static ClientNet Instance    {        get        {            if (s_instance == null)            {                lock (c_staticLocker)                {                    s_instance = new ClientNet();                }            }            return s_instance;        }    }}

转载地址:https://linxinfa.blog.csdn.net/article/details/46469107 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:C# 数据封装和解析
下一篇:unity3D 让粒子在UI上播放

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年05月03日 20时16分21秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

【工具使用】CSDN编辑器markdown字体、颜色与字号的设置 2019-04-30
【NLP学习笔记】词共现矩阵 2019-04-30
【NLP学习笔记】NLP基础知识框架图 2019-04-30
【深度学习笔记】卷积的输入输出的通道、维度或尺寸变化过程 2019-04-30
【NLP学习笔记】训练集、验证集和测试集的概念及划分 2019-04-30
【NLP学习笔记】conda换源 2019-04-30
【深度学习笔记】常见的图像增强方法:scaling、rotating、flipping、random cropping 2019-04-30
【深度学习笔记】标准卷积 2019-04-30
【深度学习笔记】组卷积 2019-04-30
【深度学习笔记】循环神经网络和递归神经网络区别 2019-04-30
【学习笔记】英文科技论文常见英语句式积累 2019-04-30
【深度学习笔记】PixelShuffle 2019-04-30
【python3学习笔记】斜杠和双斜杠运算符的区别 2019-04-30
【深度学习笔记】torch.nn.Sequential(* args) 与 torch.nn.Module 2019-04-30
【深度学习笔记】用torch.nn.Sequential()搭建神经网络模型 2019-04-30
【深度学习笔记】用torch.nn.ModuleList搭建神经网络 2019-04-30
【解决错误】AttributeError: module ‘scipy.misc‘ has no attribute ‘imread‘ 2019-04-30
【解决错误】复现RCAN的时候遇到了ImportError: cannot import name ‘_update_worker_pids’ from ‘torch._C’ 2019-04-30
【解决错误】ModuleNotFoundError: No module named ‘skimage‘ 2019-04-30
【深度学习笔记】pytorch的点乘(dot product) 2019-04-30