问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

vs socket TCP 编程中,客户端 若发送 请求 begindisconnect ,服务器端 怎么检测这一请求??

发布网友 发布时间:2022-04-22 20:58

我来回答

1个回答

热心网友 时间:2023-10-28 16:13

你看看
http://msdn.microsoft.com/zh-cn/library/system.net.sockets.aspx
这里例子很多
但是具体的可能你看比我看好···毕竟你比我了解的多

里面的类可能你能用到

既然这样我还是直接给你两个看看算了···
TcpListener 类

从 TCP 网络客户端侦听连接。
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Text;

class MyTcpListener
{
public static void Main()
{
TcpListener server=null;
try
{
// Set the TcpListener on port 13000.
Int32 port = 13000;
IPAddress localAddr = IPAddress.Parse("127.0.0.1");

// TcpListener server = new TcpListener(port);
server = new TcpListener(localAddr, port);

// Start listening for client requests.
server.Start();

// Buffer for reading data
Byte[] bytes = new Byte[256];
String data = null;

// Enter the listening loop.
while(true)
{
Console.Write("Waiting for a connection... ");

// Perform a blocking call to accept requests.
// You could also user server.AcceptSocket() here.
TcpClient client = server.AcceptTcpClient();
Console.WriteLine("Connected!");

data = null;

// Get a stream object for reading and writing
NetworkStream stream = client.GetStream();

int i;

// Loop to receive all the data sent by the client.
while((i = stream.Read(bytes, 0, bytes.Length))!=0)
{
// Translate data bytes to a ASCII string.
data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
Console.WriteLine("Received: {0}", data);

// Process the data sent by the client.
data = data.ToUpper();

byte[] msg = System.Text.Encoding.ASCII.GetBytes(data);

// Send back a response.
stream.Write(msg, 0, msg.Length);
Console.WriteLine("Sent: {0}", data);
}

// Shutdown and end connection
client.Close();
}
}
catch(SocketException e)
{
Console.WriteLine("SocketException: {0}", e);
}
finally
{
// Stop listening for new clients.
server.Stop();
}

Console.WriteLine("\nHit enter to continue...");
Console.Read();
}
}

TcpClient 类

为 TCP 网络服务提供客户端连接。

static void Connect(String server, String message)
{
try
{
// Create a TcpClient.
// Note, for this client to work you need to have a TcpServer
// connected to the same address as specified by the server, port
// combination.
Int32 port = 13000;
TcpClient client = new TcpClient(server, port);

// Translate the passed message into ASCII and store it as a Byte array.
Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);

// Get a client stream for reading and writing.
// Stream stream = client.GetStream();

NetworkStream stream = client.GetStream();

// Send the message to the connected TcpServer.
stream.Write(data, 0, data.Length);

Console.WriteLine("Sent: {0}", message);

// Receive the TcpServer.response.

// Buffer to store the response bytes.
data = new Byte[256];

// String to store the response ASCII representation.
String responseData = String.Empty;

// Read the first batch of the TcpServer response bytes.
Int32 bytes = stream.Read(data, 0, data.Length);
responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
Console.WriteLine("Received: {0}", responseData);

// Close everything.
stream.Close();
client.Close();
}
catch (ArgumentNullException e)
{
Console.WriteLine("ArgumentNullException: {0}", e);
}
catch (SocketException e)
{
Console.WriteLine("SocketException: {0}", e);
}

Console.WriteLine("\n Press Enter to continue...");
Console.Read();
}追问大哥,可能我说的不清楚。一般客户端的程序里不是有个断开连接按钮嘛,如果点过之后,服务器怎么知道客户端是在请求断开连接?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
RDL是什么意思 报税软件是什么意思 某公司的财务报表管理软件属于 报表系统指的是什么? 怎么玩真三最好?我是新手选什么英雄最好? 真三新手玩什么英雄好? 最近玩魔兽真三,想请问一下高手,初期用什么英雄最好,新手攻略 新手玩真三选什么英雄好啊 ...离泡还有一段距离的地方好几片红,红的地方又疼又痒的,怎么办... 眼角出了好多小水疱.医生说是疱疹.怎么办 龙卡贷吧取现额度是2500还卡的时候还错了5000怎么才能取出来呢_百度... vs2008 tcp套接字编程 客户端 代码编译出错 找不到有关问题在哪 我建设银行上面有显示龙卡货额度八千,没有实卡怎么用? 建设银行龙卡贷吧是什么? 龙卡贷吧信用卡额度为2000可用现金为1000额度这是怎么回事? 龙卡贷吧的,能说说这玩意是什么吗 建设银行龙卡贷吧临时额度怎么使用? 龙卡贷吧和信用卡有什么区别? @qq.com 怎么读 Tencent 是什么意思,怎么读 Ee,Pp,Tt,Qq中不同发音是那一个 这个英文字母怎么读??"QQ"要和汉语差不多的发音 大家好:QQ的正确发音? QQ怎么读?语音! qq拼音是什么? QQ拼音怎么读出来? QQ应该怎么读? 2016春节哪几天是双工 2016年春节法定节假日多少号 2016春节的作文300字怎么写 为什么在vs 中找不到 netinet/tcp.h 为啥信用卡没有临时额度,龙卡贷吧有? tcp和udp区别是什么? 利用VS2010 的MFC做个TCP通信 实例,希望有步骤有图,新手菜鸟求大神 传输控制协议tcp 与udp 的区别 关于Tcp的客户/服务的例子 (vs2008) 谁能给我个详细的解释啊 请大家帮忙啊 并发服务的TCP程序设计VS08设计C#语言 C++建立TCP三次握手通讯,出现如下情况: SNA协议与TCP/IP协议的区别? 请问VS2005如何配置WpdPack开发包,还有如何获得tcpdump数据包的里面的IP地址,目的地址,端口那些东西? TCP端口与UDP端口有何区别 VS中不能连接数据库问题 在VS2008做一个MFC的socket的TCP的聊天工具(C++)、不是控制台的哦、、求大神帮助,最好有图有* C#里TCP通信时遇到的问题 请问,我想报考计算机三级,我要准备哪些方面的知识啊, .在计算机网络中,UDP的中文全称是 vs中怎样连接服务器上的oracle数据库 住院期间离开医院属于骗保吗 住院晚上回家算是骗保吗? 住院晚上回家算骗保吗