同步:
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Text;
using System.IO;
namespace NewTcpServer
{
class Program
{
static void Main(string[] args)
{
Server server = new Server();
server.StartUp();
}
}
public class Server
{
private TcpListener _server;
private string _ip = "192.168.xx.xx";
private int _port = 10000;
public void StartUp()
{
_server = new TcpListener(new IPEndPoint(IPAddress.Parse(_ip), _port));
_server.Start();
Thread acceptTcpClientThread = new Thread(AcceptTcpClient);
acceptTcpClientThread.Start();
}
public void AcceptTcpClient()
{
while (true)
{
TcpClient client = _server.AcceptTcpClient();
Thread receiveMsgThread = new Thread(ReceiveMsg);
receiveMsgThread.Start(client);
}
}
public void ReceiveMsg(object obj)
{
TcpClient client = obj as TcpClient;
byte[] buffer = new byte[client.ReceiveBufferSize];
while(true)
{
NetworkStream stream = client.GetStream();
int len = stream.Read(buffer, 0, client.Available);
Console.WriteLine(Encoding.UTF8.GetString(buffer, 0,len));
}
}
}
}
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Text;
using System.IO;
namespace NewTcpClient
{
class Program
{
static void Main(string[] args)
{
Client client = new Client();
client.StartUp();
while(true)
{
}
}
}
public class Client
{
private string _ip = "192.168.XX.XX";
private int _port = 10000;
private TcpClient _client;
public void StartUp()
{
_client = new TcpClient();
_client.Connect(_ip, _port);
NetworkStream stream = _client.GetStream();
string str = "客户端信息";
Byte[] msg = Encoding.UTF8.GetBytes(str);
stream.Write(msg, 0, msg.Length);
}
}
}
异步:
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Text;
using System.IO;
namespace NewTcpServer
{
class Program
{
static void Main(string[] args)
{
Server server = new Server();
server.StartUp();
while(true)
{
}
}
}
public class Server
{
private TcpListener _server;
private string _ip = "192.168.xx.xx";
private int _port = 10000;
private byte[] buffer = new byte[64 * 1024];
public void StartUp()
{
_server = new TcpListener(new IPEndPoint(IPAddress.Parse(_ip), _port));
_server.Start();
_server.BeginAcceptTcpClient(AcceptedTcpClient, _server);
}
public void AcceptedTcpClient(IAsyncResult ar)
{
TcpListener server = ar.AsyncState as TcpListener;
TcpClient client = server.EndAcceptTcpClient(ar);
NetworkStream networkStream = client.GetStream();
networkStream.BeginRead(buffer, 0, buffer.Length, ReceivedMsg, client);
_server.BeginAcceptTcpClient(AcceptedTcpClient, _server);
}
public void ReceivedMsg(IAsyncResult ar)
{
TcpClient client = ar.AsyncState as TcpClient;
NetworkStream networkStream = client.GetStream();
int len = networkStream.EndRead(ar);
byte[] msg = new byte[len];
Array.Copy(buffer, 0, msg, 0, len);
Console.WriteLine(Encoding.UTF8.GetString(msg));
networkStream.BeginRead(buffer, 0, buffer.Length, ReceivedMsg, client);
}
}
}
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Text;
using System.IO;
namespace NewTcpClient
{
class Program
{
static void Main(string[] args)
{
Client client = new Client();
client.StartUp();
while(true)
{
}
}
}
public class Client
{
private string _ip = "192.168.xx.xx";
private int _port = 10000;
private TcpClient _client;
public void StartUp()
{
_client = new TcpClient();
_client.BeginConnect(_ip, _port, ConnectedServer, _client);
}
public void ConnectedServer(IAsyncResult ar)
{
TcpClient client = ar.AsyncState as TcpClient;
client.EndConnect(ar);
NetworkStream networkStream = client.GetStream();
string str = "客户端信息";
byte[] bytes = Encoding.UTF8.GetBytes(str);
networkStream.BeginWrite(bytes, 0, bytes.Length,EndWrite, networkStream);
}
public void EndWrite(IAsyncResult ar)
{
NetworkStream networkStream = ar.AsyncState as NetworkStream;
networkStream.EndWrite(ar);
}
}
}