日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET技术之美-网络编程

發布時間:2024/4/17 asp.net 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET技术之美-网络编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概要

.NET框架提供了system.net.*的一系列網絡編程,其中system.net.socket主要提供低層TCP,UDP通信,system.Net高層下的通信HTTP,FTP,SMTP通信

1、面向連接的傳輸協議-TCP

什么是面向連接:首先必須要有一個握手過程,確認連接成功之后才能傳輸數據.

TCP最大的特點是全雙工:就是A與B交互,數據可以從A到B,也可以從B到A

點對點:只能是一對一不能一對多

2、套接字

套接字的兩個重要的屬性:發起連接的本地IP和端口號,遠程的IP地址和端口號

.NET框架中提供了system.net.sockets.socket類,兩個幫助類TcpClient和TcpListener

TcpListener持續對端口偵聽,如果發現對象,則會生成一個TcpClient對象來處理和發送消息,而且同時TcpListen還會同時監聽端口

2.1、server創建并監聽接口

console.writerine("server is running");ipaddress ip=new ipaddress.parse("192.168.0.100");TcpListen listerner=new TcpListern(ip,8500);listernen.start();console.writerline("start Listeing..");

2.2、client創建連接和接口

console.writerline("Client is running"); TcpClient client=new TcpClient(); client.connect(ipaddress.parse("192.168.0.100"),8500);

2.3、server端獲取客戶端連接狀態

console.writerine("server is running");ipaddress ip=new ipaddress.parse("192.168.0.100");TcpListen listerner=new TcpListern(ip,8500);listernen.start();console.writerline("start Listeing..");TcpClient remoteClient=listener.AcceptTcpClient();console.writerline("client connected!local:{0} <--Client:{1}",remoteClient.client.localendpoint,remoteClient.client.remoteendpoint)

?

server端獲取多個客戶端的連接

while(true){TcpClient remoteClient=listener.AcceptTcpClient();console.writerline("client connected!local:{0} <--Client:{1}",remoteClient.client.localendpoint,remoteClient.client.remoteendpoint) }

AcceptTcpClient()方法在沒有收到客戶端的連接的之前,不會向前持行

2.4、同步傳輸字符串

2.4.1、server端接收

.NET框架提供了TcpClient的getStream()方法獲取client連接server的流

const int buffersize=8192;console.writerine("server is running");ipaddress ip=new ipaddress.parse("192.168.0.100");TcpListen listerner=new TcpListern(ip,8500);listernen.start();console.writerline("start Listeing..");TcpClient remoteClient=listener.AcceptTcpClient();console.writerline("client connected!local:{0} <--Client:{1}",remoteClient.client.localendpoint,remoteClient.client.remoteendpoint) ////networkstream streamToClient=remoteClient.GetSream(); byte[] buff=new byte[buffersize]; int byteRead=streamToClient.Read(buffer,0,buffersize); string msg=encoding.unncode.getstring(buffer,0,bytesread);

2.4.2、Client發送

同樣client需要發送消息,也需要獲取server端的流

networkstream streamToServert=client.GetSream(); byte[] buff=new byte[buffersize]; streamToClient.writer(buffer,0,buffersize);

2.5、連接總結

1.不使用do/while,server中只用一個listener.accepttcpclient(),則server端可以出來來自一個client的請求

2.使用一個do/while,將listener.accepttcpclient(),TcpClient.GetStream().Read()方法都放在這個循環內,那么server可以處理多個client,但每個client只能處理一個請求

3.使用一個do/while,將listener.accepttcpclient(),TcpClient.GetStream().Read()方法都放在這個循環外,那么server可以處理一個client多個請求

轉載于:https://www.cnblogs.com/ilooking/p/4363081.html

總結

以上是生活随笔為你收集整理的.NET技术之美-网络编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。