C#以流方式读socket超时设置的实例
作者:If I talk to god 发布时间:2021-10-04 15:09:11
标签:C#,socket,超时
本文实例为大家分享了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对象,对数据的读写就可以设置超时了。
来源:https://www.cnblogs.com/ycz109/p/8615223.html


猜你喜欢
- 1、什么是 IOC?IOC-Inversion of Control,即控制反转。它不是什么技术,而是一种设计思想。传统的创建对象的方法是直
- 1. 关于POJO类属性为基本类型存在的问题在项目开发中遇到的问题,定义POJO类的时候有些属性定义为了基本数据类型,比如long,shor
- 最近项目上需要实现蓝牙传输apk的一个功能,能够搜索周围的蓝牙手机并分享文件。从需求上讲android手机自带的蓝牙传输模块就可以满足需要了
- 本文实例为大家分享了viewGroup实现点击动画效果展示的具体代码,供大家参考,具体内容如下public class MyCustomVi
- 使用ehcache-spring-annotations使得在工程中简单配置即可使用缓存下载地址:http://code.google.co
- Jenkins 关闭和重启我们用jar -jar jenkins.war来启动jenkins服务器,那么我们如何关闭或者重启jenkins服
- 网上有不少教程,那个提示框字符集都是事先写好的,例如用一个String[] 数组去包含了这些数据,但是,我们也可以吧用户输入的作为历史记录保
- 一、查看线程的运行状态题目线程有以下6种状态:新建、运行、阻塞、等待、计时等待和终止。new新线程时,线程处于新建 状态。调用start()
- Android 界面刷新 Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,
- 下面通过代码看下springboot 跨域配置类,代码如下所示:ackage org.fh.config;import java.io.IO
- Android 定时器实现图片的变换在Android中,要让每秒进行一次ui更新,就需要利用到定时器和handler,message的结合,
- 周末这天手痒,正好没事干,想着写一个分页的例子出来给大家分享一下。这个案例分前端和后台两部分,前端使用面向对象的方式写的,里面用到了一些回调
- 源代码:http://github.com/lovewenyo/HttpDemo1. HttpURLConnection使用JDK原生提供的
- 一:需求当小数位很多的时候,小数位后面可能有一些多余的0并没有任何实际意义。所以在某些业务需求下可以去掉这些多余的0。例如:0.2000可以
- PopupWindow是一个弹出式窗口,它可以展示任意View。他会浮在当前窗口的上方展示。下面看代码:public class MyAct
- 本文实例讲述了C#面向对象编程之猜拳游戏实现方法。分享给大家供大家参考。具体实现方法如下:1.需求现在要制作一个游戏,玩家与计算机进行猜拳游
- 玩安卓的人都知道adb,玩adb的人都知道install和uninstall,但是为什么adb shell pm install packa
- 东西不多,但一般项目够用了。public class RegularUtil { //身份证 publi
- 异常算术异常类:ArithmeticExecption空指针异常类:NullPointerException类型强制转换异常:ClassCa
- ZXing是谷歌的一个开源库,可以用来生成二维码、扫描二维码。本文所介绍的是第一部分。首先上效果图:ZXing相关各种文件官方下载地址:ht