[英]Send data over the network C#
我尝试通过网络发送一个字符串,这是我的代码:
IPEndPoint serverEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 25);
TcpClient client = new TcpClient(serverEndPoint);
Socket socket = client.Client;
byte[] data = Encoding.ASCII.GetBytes(response);
socket.Send(data, data.Length, SocketFlags.None);
socket.Close();
client.Close();
当我运行它时,我得到了System.Net.Sockets.SocketException
如果使用的是无连接协议,则必须在调用Send之前先调用Connect,否则Send将抛出SocketException。 如果使用的是面向连接的协议,则必须使用“连接”建立远程主机连接,或者使用“接受”接受传入的连接。 请参阅Socket.Send方法(Byte [],Int32,SocketFlags)
假设您使用的是无连接协议,则代码应如下所示,
string response = "Hello";
IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
if (ipAddress != null)
{
IPEndPoint serverEndPoint = new IPEndPoint(ipAddress, 25);
byte[] receiveBuffer = new byte[100];
try
{
using (TcpClient client = new TcpClient(serverEndPoint))
{
using (Socket socket = client.Client)
{
socket.Connect(serverEndPoint);
byte[] data = Encoding.ASCII.GetBytes(response);
socket.Send(data, data.Length, SocketFlags.None);
socket.Receive(receiveBuffer);
Console.WriteLine(Encoding.ASCII.GetString(receiveBuffer));
}
}
}
catch (SocketException socketException)
{
Console.WriteLine("Socket Exception : ", socketException.Message);
throw;
}
}
下次,尝试包含异常消息以解释实际出了什么问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.