客户端与服务器简单交互笔记

C#客户端与服务器简单交互笔记

客户段代码

using System;
using System.Text;
using System.Net.Sockets;
using System.Threading;
using System.Net;

namespace ClientSocket
{
    class Progrom
    {
        static void Main(string[] args)
        {
            Socket clientSocket = new Socket(SocketType.Stream, ProtocolType.Tcp);
            IPAddress ip = IPAddress.Parse("192.168.xxx.xxx");
            IPEndPoint point = new IPEndPoint(ip, 2333);
            clientSocket.Connect(point);

            Thread thread = new Thread(Recive);
            thread.IsBackground = true;
            thread.Start(clientSocket);

            int i = 0;
            while (true)
            {
                i++;
                var buffer = Encoding.UTF8.GetBytes($"{i}:客户端发送信息给服务器");
                clientSocket.Send(buffer);
                Thread.Sleep(1000);
            }
        }

        static void Recive(object o)
        {
            Socket send = o as Socket;
            while (true)
            {
                byte[] buffer = new byte[4096];
                var effer = send.Receive(buffer);
                if (effer == 0)
                {
                    break;
                }
                var str = Encoding.UTF8.GetString(buffer, 0, effer);
                Console.WriteLine(str);
            }
        }
    }
}

服务器代码

using System;
using System.Text;
using System.Threading;
using System.Net;
using System.Net.Sockets;

namespace ServerSocket
{
    class Progrom
    {
        static void Main(string[] args)
        {
            Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp);

            IPAddress ip = IPAddress.Any;
            IPEndPoint point = new IPEndPoint(ip, 2333);
            socket.Bind(point);
            socket.Listen(1);

            Console.WriteLine("服务器连接中...");
            Thread thread = new Thread(Listen) { IsBackground = true };
            thread.Start(socket);

            Console.Read();
        }

        static void Listen(object o)
        {
            Socket serverSocket = o as Socket;
            while (true)
            {
                var send = serverSocket.Accept();
                var sendPoint = send.RemoteEndPoint.ToString();

                Console.WriteLine($"{sendPoint}Connet");
                Thread thread = new Thread(Recive) { IsBackground = true };
                thread.Start(send);
            }
        }

        static void Recive(object o)
        {
            Socket send = o as Socket;
            while (true)
            {
                byte[] buffer = new byte[4096];
                var effer = send.Receive(buffer);

                if (effer == 0)
                {
                    break;
                }
                var str = Encoding.UTF8.GetString(buffer, 0, effer);
                Console.WriteLine(str);

               buffer = Encoding.UTF8.GetBytes("服务器返回信息");
                send.Send(buffer);
            }
        }
    }
}

查询IP地址并且输入代码地址中
在这里插入图片描述
在这里插入图片描述
服务器和客户端运行时
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值