开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

首页   >   博客   >   a13956353032

C#socket建立服务器并进行简单通信 热度 3

个人分类: 公开 | 2016-3-11 21:22
0 个评论 | 阅读 650 | 收藏 | 举报
服务器端代码:

[code]csharpcode:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Sockets;

namespace Csharp_socket编程_TCP协议
{
    class Program
    {
        static void Main(string[] args)
        {
            //socket也是一个类,位于System.Net.Sockets下面
            //1:创建一个socket
            Socket tcpServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            //2:绑定Ip地址和端口号117.25.188.1
            IPAddress ipaddress = new IPAddress(new byte[]{117,25,190,168});
            EndPoint point = new IPEndPoint(ipaddress,7788);//IPEndPoint类是对ip端口做了一层封装的类
            tcpServer.Bind(point);//向操作系统申请一个可用的ip地址和端口号用于通信
            //3:开始监听(等待客户端的连接)
            Console.WriteLine("开始监听");/////////
            tcpServer.Listen(100);//设置最大的连接数

            Socket ClientSocket = tcpServer.Accept();//暂停当前线程知道有客户端连接进来才进行下面的代码,返回客户端的socket
            Console.WriteLine("有客户端连入");///////

            //4:使用返回的socket向客户端发送消息
            string welcome = "welcome to you";
            Console.WriteLine("向客户端发送消息" + welcome);///////
            byte[] str = Encoding.UTF8.GetBytes(welcome);//利用这个方法将string型转化为byte型数组
            ClientSocket.Send(str);//向客户端发送欢迎信息

            //5:接收客户端发来的消息
            byte[] data = new byte[1000];
            int length = ClientSocket.Receive(data);
            string receiveMessage = Encoding.UTF8.GetString(data, 0, length);
            Console.WriteLine("收到客户端发来的消息:"+receiveMessage);



            Console.ReadKey();


        }
    }
}
客户端代码:

[code]csharpcode:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Sockets;

namespace Csharp_socket编程_TCP协议_客户端
{
    class Program
    {
        static void Main(string[] args)
        {
            //1:创建socket
            Socket tcpClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            
            //2:向服务器端发送连接请求
            Console.WriteLine("向服务器端发送连接请求");//////
            IPAddress ipaddress = IPAddress.Parse("117.25.190.168");//IPAddress.Parse可以把string类型的ip地址转化为ipAddress型
            EndPoint point = new IPEndPoint(ipaddress, 7788);//通过ip地址和端口号定位要连接的服务器端
            tcpClient.Connect(point);//建立连接
            Console.WriteLine("连接到服务器");//////

            //3:接收服务器端发来的消息
            byte[] data = new byte[1000];
            int length = tcpClient.Receive(data);//这里的byte数组用来接收数据,返回值length表示接收的数据长度
            string message = Encoding.UTF8.GetString(data, 0, length);//把字节数组转化为字符串
            Console.WriteLine("接收到服务器端的消息:" + message);

            //4:向服务器端发送消息            
            string messageToServer = Console.ReadLine();
            Console.WriteLine("向服务器端发送消息:" + messageToServer);//////

            tcpClient.Send(Encoding.UTF8.GetBytes(messageToServer));//向服务器端发送消息

            Console.ReadKey();
        }
    }
}


0 2

作者的其他最新博客

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册帐号

个人分类

标签

阅读排行

评论排行

推荐博客

最新博客

返回顶部