C#以流方式读socket超时设置的实例
程序员文章站
2023-12-19 11:27:46
本文实例为大家分享了c#以流方式读socket超时设置的具体代码,供大家参考,具体内容如下
using system;
using system.io;
us...
本文实例为大家分享了c#以流方式读socket超时设置的具体代码,供大家参考,具体内容如下
using system; using system.io; using system.net; using system.text; using system.net.sockets; public class client { public static void main() { try { // 新建客户端套接字 tcpclient tcpclnt = new tcpclient(); console.writeline("连接....."); // 连接服务器 tcpclnt.receivetimeout = 3000;//设置socket的接收超时时间为3s。 tcpclnt.connect("127.0.0.1",8001); console.writeline("已连接"); console.write("请输入要传输的字符串 : "); // 读入字符串 string str=console.readline(); // 得到客户端的流 stream stm = tcpclnt.getstream(); // 发送字符串 asciiencoding asen= new asciiencoding(); byte[] ba=asen.getbytes(str); console.writeline("传输中....."); stm.write(ba,0,ba.length); // 接收从服务器返回的信息 byte[] bb=new byte[100]; int k=stm.read(bb,0,100); //3秒后会出现超时异常 // 输出服务器返回信息 for (int i=0;i { console.write(convert.tochar(bb[i])); } // 关闭客户端连接 tcpclnt.close(); } catch (exception e) { console.writeline("error..... " + e.stacktrace); } } }
tcplistener类用于监听客户端连接请求,tcpclient类用于提供本地主机和
远程主机的连接信息。
两个类都位于 system.net.socckets命名空间下
tcplistener类常用的放方法。
方法 说明
acceptsocket 从端口处接收一个连接并赋予它socket对象
accepttcpclient 从端口处接收一个连接并赋予它tcpclient对象
equals 判断两个tcplistener对象是否相等
gettype 获取当前实例的类型
pending 确定是否有挂起的连接请求
start 开始接听传入的连接请求
stop 关闭监听器
tostring 创建tcplistener对象的字符串表示
所以我们在用tcplistener监听port时,一旦连接建立,也可以从tcplisener.accepttcpclient得到一个tcpclient对象,对数据的读写就可以设置超时了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。