C# 多网卡 Server Listen
程序员文章站
2022-06-14 13:44:24
vc和bcb中做一个server的监听程序,只需要指定端口,然后监听(listen)就行了.在c#找不到这个函数了,慢慢看msdn,怎么需要指定ip和port才能监听,那么...
vc和bcb中做一个server的监听程序,只需要指定端口,然后监听(listen)就行了.在c#找不到这个函数了,慢慢看msdn,怎么需要指定ip和port才能监听,那么多网卡的机器应该怎么写程序呢?下面的程序可以解释怎么去做.
tcplistener 类别会提供简易的方法,用以在*的同步模式中聆听 (listen) 和接受输入的连接要求。您可以使用 tcpclient 或 socket 来连接 tcplistener 。使用 ipendpoint 、本机 ip 地址和连接端口编号,或者就只用连接埠编号来建立 tcplistener 。如果您想要基础服务供货商为您指派那些值,请指定 any 给本机 ip 地址和 0 给本机连接埠编号。如果选择要这样做,您可以使用 localendpoint 来识别指派的信息。
使用 start 方法开始聆听输入的连接要求。 start 将会让输入的连接进入队列等候,一直到不是呼叫了 stop 方法,就是已经将 maxconnections 排入队列为止。使用 acceptsocket 或 accepttcpclient ,从输入的连接要求队列取出连接。这两个方法将会*。如果想要避免*,您可以先使用 pending 方法来判断连接要求是否可在队列中取得。
呼叫 stop 方法关闭 tcplistener 。
这个建构函式可以让您指定要聆听输入连接尝试的本机 ip 地址和连接端口编号。使用这个建构函式之前,您必须使用所需的本机 ip 地址和连接端口编号来建立 ipendpoint 。将这个 ipendpoint 当作 localep 参数传递给建构函式。
如果您不在乎要指派哪个本机地址,则可使用 ipaddress.any 做为地址参数以建立 ipendpoint ,而基础服务供货商将会指派最适当的网络地址。如果您有多个网络接口,这可能有助于简化应用程序。如果您不在乎要使用哪个本机连接埠,则可以指定 0 做为连接埠编号来建立 ipendpoint 。在这种情况下,服务供货商将会指派介于 1024 和 5000 之间的可用连接埠编号。如果您使用这个途径,则可以藉由使用 localendpoint 属性来探索什么局域网络地址和连接端口编号已经被指派。
呼叫 start 方法以开始聆听输入的连接尝试。
ipendpoint 类别包含主机以及应用程序连接到主机服务所需的通讯端口信息。藉由结合主机的 ip 地址和服务的通讯端口编号, ipendpoint 类别形成连接至服务的连接点 (connection point)。
[c#]
//creates an instance of the tcplistener class by providing a local endpoint.
ipaddress ipaddress = dns.resolve(dns.gethostname()).addresslist[0];
ipendpoint iplocalendpoint = new ipendpoint(ipaddress, 11000);
try{
tcplistener tcplistener = new tcplistener(iplocalendpoint);
}
catch ( exception e ){
console.writeline( e.tostring());
}
tcplistener 类别会提供简易的方法,用以在*的同步模式中聆听 (listen) 和接受输入的连接要求。您可以使用 tcpclient 或 socket 来连接 tcplistener 。使用 ipendpoint 、本机 ip 地址和连接端口编号,或者就只用连接埠编号来建立 tcplistener 。如果您想要基础服务供货商为您指派那些值,请指定 any 给本机 ip 地址和 0 给本机连接埠编号。如果选择要这样做,您可以使用 localendpoint 来识别指派的信息。
使用 start 方法开始聆听输入的连接要求。 start 将会让输入的连接进入队列等候,一直到不是呼叫了 stop 方法,就是已经将 maxconnections 排入队列为止。使用 acceptsocket 或 accepttcpclient ,从输入的连接要求队列取出连接。这两个方法将会*。如果想要避免*,您可以先使用 pending 方法来判断连接要求是否可在队列中取得。
呼叫 stop 方法关闭 tcplistener 。
这个建构函式可以让您指定要聆听输入连接尝试的本机 ip 地址和连接端口编号。使用这个建构函式之前,您必须使用所需的本机 ip 地址和连接端口编号来建立 ipendpoint 。将这个 ipendpoint 当作 localep 参数传递给建构函式。
如果您不在乎要指派哪个本机地址,则可使用 ipaddress.any 做为地址参数以建立 ipendpoint ,而基础服务供货商将会指派最适当的网络地址。如果您有多个网络接口,这可能有助于简化应用程序。如果您不在乎要使用哪个本机连接埠,则可以指定 0 做为连接埠编号来建立 ipendpoint 。在这种情况下,服务供货商将会指派介于 1024 和 5000 之间的可用连接埠编号。如果您使用这个途径,则可以藉由使用 localendpoint 属性来探索什么局域网络地址和连接端口编号已经被指派。
呼叫 start 方法以开始聆听输入的连接尝试。
ipendpoint 类别包含主机以及应用程序连接到主机服务所需的通讯端口信息。藉由结合主机的 ip 地址和服务的通讯端口编号, ipendpoint 类别形成连接至服务的连接点 (connection point)。
[c#]
//creates an instance of the tcplistener class by providing a local endpoint.
ipaddress ipaddress = dns.resolve(dns.gethostname()).addresslist[0];
ipendpoint iplocalendpoint = new ipendpoint(ipaddress, 11000);
try{
tcplistener tcplistener = new tcplistener(iplocalendpoint);
}
catch ( exception e ){
console.writeline( e.tostring());
}