博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TCP的应用编程服务器端重要笔记
阅读量:5049 次
发布时间:2019-06-12

本文共 3221 字,大约阅读时间需要 10 分钟。

1                         TCP的应用编程服务器端重要笔记 2 1. TcpListener类用于侦听和接受传入的连接请求。 3    TcpClient类用于提供本地主机和远程主机的连接信息。  4 2.TcpClient类 5  主要用于编写客户端程序,且需要直接利用构造函数创建TcpClient对象。 6  构造函数有四种重载形式 7  TcpClient() 8  TcpClient(AddressFamily family) 9  TcpClient(IPEndPoint iep) 10  TcpClient(string hostname,int port)11 (1)TcpClient():12     /-------该构造函数创建一个默认的TcpClient对象,并自动分配本机(客户端IP地址和端口号。---------/13     TcpClient tcpClient=new TcpClient();14 tcpClient.Connect("www.abcd.com", 51888);15 16 (2)TcpClient(AddressFamily family):17      /------AddressFamily枚举指定使用哪种网络协议。-------/18      TcpClient tcpClient = new TcpClient(AddressFamily.InterNetwork);19      tcpClient.Connect("www.abcd.com", 51888);20 21 (3)TcpClient(IPEndPoint iep):22      /------该构造函数的参数iep指定本机(客户端)IP地址与端口号。当客户端有一个以上的IP地址时,而且程序员希望直接指定使用的IP地址和端口号,可以使用这种方式。如果使用这种方式--------/23      IPAddress[] address = Dns.GetHostAddresses(Dns.GetHostName());24      IPEndPoint iep = new IPEndPoint(address[0], 51887);25      TcpClient tcpClient = new TcpClient(iep);26      tcpClient.Connect("www.abcd.com", 51888);27 28 (4)TcpClient(string hostname,int port)29   /-------  这是使用最方便的一种构造函数。参数中的hostname表示要连接到的远程主机的DNS名,port表示要连接到的远程主机的端口号。该构造函数会自动分配最合适的本地主机IP地址和端口号,并对DNS进行解析,然后与远程主机建立连接---------/30    TcpClient tcpClient = new TcpClient("www.abcd.com", 51888);31 32 3.TcpClient对象中的GetString()方法可以获得NetworkStream对象33   例如:this.client = client;34         NetworkStream networkStream = client.GetStream();35 而在服务器与客户之间的传输数据要用到NetworkStream对象36   例如:  public BinaryReader br;37           public BinaryWriter bw;38           br = new BinaryReader(networkStream); /*以上是user类当中的成员变量和构造方法当39           bw = new BinaryWriter(networkStream);   中的代码*/40          String receiveString=null;41          //这里的user对象是TcpListener对象创建后,调用start()方法和AcceptTcpClient()方法获得连接到服务器的TcpClient的对象,具体操作在TcpListener知识点的时候具体阐述42          receiveString=user.br.ReadString();//从网络流中读出字符串,此方法会自动判断字符串长度前缀,并根据长度前缀读出字符串43 44 4.调用string的静态方法Format可以设置输出的格式45   例如:AddItemToListBox(string.Format("开始在{0}:{1}监听客户连接", localAddress, port));46 47 5.String类型的对象的Split()方法可以分解字符串中指定的分割符,分割成几个字符串48   例如:string [] splitString=receiveString.Split(‘,’)//把receiveString字符串按逗号分离开来全部存入string类型的数组当中49   例如:string command = message.Split(',')[0].ToLower();//字符串message以逗号分割成几个子字符串,取第一个子字符串?????????????????50 51 6.String类的对象的Substring(int i)方法可以提取出下标为i至末尾的子字符串52   例如:string talkString = receiveString.Substring(splitString[0].Length + splitString[1].Length + 2);53 54 7.TcpListener对象的创建和使用:55  TcpListener myListener;56  myListener = new TcpListener(localAddress, port);57  myListener.Start();//staty()函数开始监听58  TcpClient newClient = null;59  newClient = myListener.AcceptTcpClient();//在服务器中,TcpClient对象必须要用 AcceptTcpClient();方法获取60  myListener.Stop();//这是停止监听时的代码举例61  62 8.Thread线程的概念和使用:63 (1)服务器监听操作需要建立一个线程;64 (2)服务器在监听操作的线程中,如果有客户端连接则再创建一个线程用于处理与对应用户的交互65 (3)Thread的使用举例:66 例如:Thread myThread = new Thread(ListenClientConnect);67       myThread.Start();68 //在上述的使用当中Thread构造方法中的参数ListenClientConnect是一个方法的指针,即方法的名字,若该方法无参数,则如上述所示创建线程69 例如:Thread threadReceive = new Thread(ReceiveData);70       threadReceive.Start(user);71 //这是在ReceiveData中有参数的情况,只能在Start()方法中输入对应的参数

 

转载于:https://www.cnblogs.com/goodlqy/p/4042066.html

你可能感兴趣的文章
Centos6.4安装JDK
查看>>
201521123069 《Java程序设计》 第4周学习总结
查看>>
线性表的顺序存储——线性表的本质和操作
查看>>
【linux】重置fedora root密码
查看>>
pig自定义UDF
查看>>
输入名字显示其生日,没有则让输入生日,做记录
查看>>
Kubernetes 运维学习笔记
查看>>
并查集 经典 畅通工程
查看>>
Spark MLlib 之 Naive Bayes
查看>>
php修改SESSION的有效生存时间
查看>>
spring security 11种过滤器介绍
查看>>
Hibernate一对多、多对一关联
查看>>
一、记录Git使用中遇到的问题及解决方法
查看>>
学习网址
查看>>
前端表格插件datatables
查看>>
内部类
查看>>
树链剖分入门
查看>>
图解算法时间复杂度
查看>>
UI_搭建MVC
查看>>
一个样例看清楚JQuery子元素选择器children()和find()的差别
查看>>