C# Socket

qq_25595483 2018-04-16 04:08:04
代码如下

static void Main(string[] args)
{
Listen(2332);
Console.Read();
}
/// <summary>
/// 监听请求 (服务端)
/// </summary>
/// <param name="port"></param>
public static void Listen(int port)
{
Socket listenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
listenSocket.Bind(new IPEndPoint(IPAddress.Any, port));
listenSocket.Listen(10000);
Console.WriteLine("Listen" + port );

while (true)
{
Socket acceptSocket = listenSocket.Accept();
string receiveData = Receive(acceptSocket, 5000); //5 seconds timeout.
Console.WriteLine("Receive:" + receiveData);
string sendmessage = getsendmessage(receiveData);
acceptSocket.Send(System.Text.Encoding.Default.GetBytes(sendmessage));
DestroySocket(acceptSocket); //import
Thread.Sleep(5000);
}

}
private static string getsendmessage(string receivedata)
{
string result = "AS02#";
if (receivedata.StartsWith("&"))
return receivedata;
if (receivedata.Contains("AS04"))
result = "AS38*98080*0#";
if (receivedata.Contains("AS05"))
result = "AS39*98080#";
return result;
}
/// <summary>
/// 接收数据
/// </summary>
/// <param name="socket"></param>
/// <param name="timeout"></param>
/// <returns></returns>
private static string Receive(Socket socket, int timeout)
{
string result = string.Empty;
socket.ReceiveTimeout = timeout;
List<byte> data = new List<byte>();
byte[] buffer = new byte[1024];
int length = 0;
try
{
while ((length = socket.Receive(buffer)) > 0)
{
for (int j = 0; j < length; j++)
{
data.Add(buffer[j]);
}
if (length < buffer.Length)
{
break;
}
}
}
catch { }
if (data.Count > 0)
{
result = encode.GetString(data.ToArray(), 0, data.Count);
}
return result;
}

/// <summary>
/// 销毁Socket对象
/// </summary>
/// <param name="socket"></param>
private static void DestroySocket(Socket socket)
{
if (socket.Connected)
{
socket.Shutdown(SocketShutdown.Both);
}
socket.Close();
}

为什么 客户端 接受不到服务端发送的信息,服务端接受的永远都是客服端发送的心跳包
...全文
582 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
牧歌ing 2018-04-28
  • 打赏
  • 举报
回复
给你看看这篇文章,挺不错的 https://blog.csdn.net/linshuhe1/article/details/51386559
hiauok 2018-04-27
  • 打赏
  • 举报
回复
给你看一下我写的一个demo:https://blog.csdn.net/xuelin663

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧