c# socket tcp send怎么知道发送成功
时间: 2023-10-01 07:11:26 浏览: 292
在C#中使用Socket发送TCP数据时,可以使用Send方法来发送数据。该方法会返回已经成功发送的字节数。如果返回值等于要发送的数据的长度,则说明数据已经成功发送。如果返回值小于要发送的数据的长度,则说明只有部分数据被发送了。
另外,可以使用Socket.Poll方法来检查Socket是否可写。如果Socket可写,则说明数据已经成功发送。如果Socket不可写,则说明数据还未被成功发送。具体可以参考下面的示例代码:
```
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class Program {
static void Main(string[] args) {
// 创建Socket对象
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 连接到服务器
socket.Connect(IPAddress.Parse("127.0.0.1"), 12345);
// 要发送的数据
byte[] data = Encoding.UTF8.GetBytes("Hello, World!");
// 发送数据
int sendBytes = socket.Send(data);
// 检查数据是否已经成功发送
while (true) {
// 检查Socket是否可写
bool canWrite = socket.Poll(1000, SelectMode.SelectWrite);
if (canWrite) {
Console.WriteLine("数据已经成功发送");
break;
}
else {
Console.WriteLine("数据还未被成功发送");
}
}
// 关闭Socket
socket.Close();
}
}
```
阅读全文