服务器端
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
namespace LOL
{
class Program
{
private static Socket server;
static void Main(string[] args)
{
Console.WriteLine(“服务器启动”);
//定义网络类型(intel)和传输方式(流)和网络协议(tcp)
server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//任何ip都可以访问,绑定端口号
server.Bind(new IPEndPoint(IPAddress.Any, 10001));
//同时可以监听10条消息
server.Listen(10);
while (true)
{
//有客户连接后,返回一个客户端实例(没有客户端时,程序会一直停在这里)
Socket client = server.Accept(); Console.WriteLine(“有客户端连接了”); RecevieMessage(client);
}
}
private static void RecevieMessage(Socket client)
{
try
{
//创建一个字节缓冲数组
byte[] buffer = new byte[1024];
//从客户端读取数据放入字节缓冲数组
int size = client.Receive(buffer);
// 把字节数组里面的东西用utf8转换为字符串
Console.WriteLine(client.RemoteEndPoint.ToString() + “:” + Encoding.UTF8.GetString(buffer, 0, size));
RecevieMessage(client);
}
catch (Exception e)
{
Console.WriteLine(“断开”);
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
namespace LolClient
{
class Program
{
private static Socket client;
private static byte[] byteArray = new byte[1024];
static void Main(string[] args)
{
Console.WriteLine(“客户端启动”);
//定义网络类型(intel)和传输方式(流)和网络协议(tcp)
client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//连接ip和端口号
client.Connect(“192.168.1.105”, 10001);
//开始异步接受数据
client.BeginReceive(byteArray, 0, 1024, SocketFlags.None, ReceiveCallBack, client);
//实现用户的输入,并且把输入发送到服务器
Input();
}
private static void Input()
{
string text = Console.ReadLine();
//把字符串转换为字节数组
byte[] byteBuffer = Encoding.UTF8.GetBytes(text);
//发送
client.Send(byteBuffer);
//继续监听下一次输入
Input();
}
private static void ReceiveCallBack(IAsyncResult ar)
{
Socket client = (Socket)ar.AsyncState;
try
{
int size = client.EndReceive(ar);
Console.WriteLine(Encoding.UTF8.GetString(byteArray, 0, size));
}
catch (Exception)
{
throw;
}
}
}
}