客户端发送
C#代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
namespace FTPSend
{
public class FtpClient
{
public static void SendString()
{
string str = "hello world";
string StrIP = "127.0.0.1";
string StrPort = "10010";
byte[] SendData = Encoding.UTF8.GetBytes(str);
IPAddress ipadress = IPAddress.Parse(StrIP);
int port = int.Parse(StrPort);
TcpClient tcpclient = new TcpClient();
NetworkStream stream = null;
try
{
tcpclient.Connect(ipadress, port);
stream = tcpclient.GetStream();
stream.WriteAsync(SendData, 0,str.Length);
stream.Close();
tcpclient.Close();
}
catch (Exception ex)
{
throw ex;
}
}
}
}
服务端接收
c#代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace FTPReceive
{
class Program
{
private static TcpListener server;
public List<TcpClient> clients = new List<TcpClient>();
static void Main(string[] args)
{
int port = 10010;
IPAddress iPAddress = IPAddress.Parse("127.0.0.1");
IPEndPoint ipPOrt = new IPEndPoint(iPAddress, port);
server = new TcpListener(ipPOrt);
server.Start();
Console.Write("启动监听成功");
server.BeginAcceptTcpClient(new AsyncCallback(DoAcceptTcpclient), server);
Console.ReadKey();
}
private static void DoAcceptTcpclient(IAsyncResult result)
{
TcpListener listerer = (TcpListener)result.AsyncState;
TcpClient client = listerer.EndAcceptTcpClient(result);
List<TcpClient> clients = new List<TcpClient>();
clients.Add(client);
Console.WriteLine("客户端建立完成,id{0}",client.Client.RemoteEndPoint.ToString());
Thread thread = new Thread(new ParameterizedThreadStart(ReceiveMessageFromClient));
thread.Start(client);
server.BeginAcceptTcpClient(new AsyncCallback(DoAcceptTcpclient), server);
}
private static void ReceiveMessageFromClient(object reciveClient)
{
byte[] result = new byte[1024];
TcpClient client = reciveClient as TcpClient;
if (client==null)
{
Console.WriteLine("client error");
return;
}
while (true)
{
try
{
NetworkStream stream = client.GetStream();
Console.WriteLine("wait a moment");
int num = stream.Read(result,0,result.Length);
if (num != 0)
{
string str = Encoding.UTF8.GetString(result, 0, num);
Console.WriteLine("数据长度:{0},数据内容:{1}", num, str);
}
else
{
Console.WriteLine("客户端关闭");
break;
}
}
catch (Exception ex)
{
throw ex;
}
}
}
}
}
结果
启动服务端,开始监听
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190815170706857.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NlY3JldDIzMTYzNTI3OTI=,size_16,color_FFFFFF,t_70)
启动客户端
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190815170810113.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NlY3JldDIzMTYzNTI3OTI=,size_16,color_FFFFFF,t_70)
数据发送成功![在这里插入图片描述](https://img-blog.csdnimg.cn/20190815170932279.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NlY3JldDIzMTYzNTI3OTI=,size_16,color_FFFFFF,t_70)