Socket 网络编程
Server
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
namespace Server
{
class Program
{
static void Main(string[] args)
{
// 1 创建一个Socket对象
Socket skConn = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 2 绑定IP和监听端口
IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("192.168.1.10"), 9999);
skConn.Bind(endPoint);
// 3 开始监听
skConn.Listen(5);
Console.WriteLine("开始监听。。。。。。");
// 4 一旦开始监听后,如果有客户端连接,那么久接受客户端连接。
// sk1 才是与特定用户进行通信的socket
Socket sk1 = skConn.Accept();
Console.WriteLine("客户端:{0}已经连接!", sk1.RemoteEndPoint.ToString());
// 设置一个缓冲区
byte[] buffers = new byte[1024 * 1024 * 5]; // 5MB
// 5 接收客户端发来的消息
// 返回值就是实际接收到的字节的个数
int byte_count = sk1.Receive(buffers);
// 6 把用户发送过来的数据转换为字符输出
string msg = System.Text.Encoding.UTF8.GetString(buffers, 0, byte_count);
Console.WriteLine(msg);
Console.ReadKey();
}
}
}
Client
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
namespace Client
{
class Program
{
static void Main(string[] args)
{
// 1 创建一个Socket
Socket skClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 2 连接对应的服务器
skClient.Connect("192.168.1.10", 9999);
// 3 向服务器发送一条消息
string msg = "Hello, Everybody!";
byte[] buffers = System.Text.Encoding.UTF8.GetBytes(msg);
skClient.Send(buffers);
Console.WriteLine("发送完毕!");
Console.ReadKey();
}
}
}