免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

vb.net通訊協(xié)議,vbnet tcp通訊

vb.net/.net怎樣使用http協(xié)議的get和post?

不想一點(diǎn)一點(diǎn)寫(xiě)了,粘貼給你吧

創(chuàng)新互聯(lián)是一家朝氣蓬勃的網(wǎng)站建設(shè)公司。公司專(zhuān)注于為企業(yè)提供信息化建設(shè)解決方案。從事網(wǎng)站開(kāi)發(fā),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),網(wǎng)站模板,微信公眾號(hào)開(kāi)發(fā),軟件開(kāi)發(fā),微信平臺(tái)小程序開(kāi)發(fā),十多年建站對(duì)成都橡塑保溫等多個(gè)行業(yè),擁有豐富建站經(jīng)驗(yàn)。

使用 HttpWebRequest 向網(wǎng)站提交數(shù)據(jù)

HttpWebRequest 是 .net 基類(lèi)庫(kù)中的一個(gè)類(lèi),在命名空間 System.Net 下面,用來(lái)使用戶(hù)通過(guò) HTTP 協(xié)議和服務(wù)器交互。

HttpWebRequest 對(duì) HTTP 協(xié)議進(jìn)行了完整的封裝,對(duì) HTTP 協(xié)議中的 Header, Content, Cookie 都做了屬性和方法的支持,很容易就能編寫(xiě)出一個(gè)模擬瀏覽器自動(dòng)登錄的程序。

程序使用 HTTP 協(xié)議和服務(wù)器交互主要是進(jìn)行數(shù)據(jù)的提交,通常數(shù)據(jù)的提交是通過(guò) GET 和 POST 兩種方式來(lái)完成,下面對(duì)這兩種方式進(jìn)行一下說(shuō)明:

1. GET 方式。 GET 方式通過(guò)在網(wǎng)絡(luò)地址附加參數(shù)來(lái)完成數(shù)據(jù)的提交,比如在地址 中,前面部分 表示數(shù)據(jù)提交的網(wǎng)址,后面部分 hl=zh-CN 表示附加的參數(shù),其中 hl 表示一個(gè)鍵(key), zh-CN 表示這個(gè)鍵對(duì)應(yīng)的值(value)。程序代碼如下:

HttpWebRequest req = (HttpWebRequest) HttpWebRequest.Create( "" );

req.Method = "GET";

using (WebResponse wr = req.GetResponse())

{

//在這里對(duì)接收到的頁(yè)面內(nèi)容進(jìn)行處理

}

2. POST 方式。 POST 方式通過(guò)在頁(yè)面內(nèi)容中填寫(xiě)參數(shù)的方法來(lái)完成數(shù)據(jù)的提交,參數(shù)的格式和 GET 方式一樣,是類(lèi)似于 hl=zh-CNnewwindow=1 這樣的結(jié)構(gòu)。程序代碼如下:

string param = "hl=zh-CNnewwindow=1";

byte[] bs = Encoding.ASCII.GetBytes(param);

HttpWebRequest req = (HttpWebRequest) HttpWebRequest.Create( "" );

req.Method = "POST";

req.ContentType = "application/x-www-form-urlencoded";

req.ContentLength = bs.Length;

using (Stream reqStream = req.GetRequestStream())

{

reqStream.Write(bs, 0, bs.Length);

}

using (WebResponse wr = req.GetResponse())

{

//在這里對(duì)接收到的頁(yè)面內(nèi)容進(jìn)行處理

}

在上面的代碼中,我們?cè)L問(wèn)了 的網(wǎng)址,分別以 GET 和 POST 方式提交了數(shù)據(jù),并接收了返回的頁(yè)面內(nèi)容。然而,如果提交的參數(shù)中含有中文,那么這樣的處理是不夠的,需要對(duì)其進(jìn)行編碼,讓對(duì)方網(wǎng)站能夠識(shí)別。

3. 使用 GET 方式提交中文數(shù)據(jù)。 GET 方式通過(guò)在網(wǎng)絡(luò)地址中附加參數(shù)來(lái)完成數(shù)據(jù)提交,對(duì)于中文的編碼,常用的有 gb2312 和 utf8 兩種,用 gb2312 方式編碼訪問(wèn)的程序代碼如下:

Encoding myEncoding = Encoding.GetEncoding("gb2312");

string address = "?" + HttpUtility.UrlEncode("參數(shù)一", myEncoding) + "=" + HttpUtility.UrlEncode("值一", myEncoding);

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(address);

req.Method = "GET";

using (WebResponse wr = req.GetResponse())

{

//在這里對(duì)接收到的頁(yè)面內(nèi)容進(jìn)行處理

}

在上面的程序代碼中,我們以 GET 方式訪問(wèn)了網(wǎng)址 ,傳遞了參數(shù)“參數(shù)一=值一”,由于無(wú)法告知對(duì)方提交數(shù)據(jù)的編碼類(lèi)型,所以編碼方式要以對(duì)方的網(wǎng)站為標(biāo)準(zhǔn)。常見(jiàn)的網(wǎng)站中, (百度)的編碼方式是 gb2312, (谷歌)的編碼方式是 utf8。

4. 使用 POST 方式提交中文數(shù)據(jù)。 POST 方式通過(guò)在頁(yè)面內(nèi)容中填寫(xiě)參數(shù)的方法來(lái)完成數(shù)據(jù)的提交,由于提交的參數(shù)中可以說(shuō)明使用的編碼方式,所以理論上能獲得更大的兼容性。用 gb2312 方式編碼訪問(wèn)的程序代碼如下:

Encoding myEncoding = Encoding.GetEncoding("gb2312");

string param = HttpUtility.UrlEncode("參數(shù)一", myEncoding) + "=" + HttpUtility.UrlEncode("值一", myEncoding) + "" + HttpUtility.UrlEncode("參數(shù)二", myEncoding) + "=" + HttpUtility.UrlEncode("值二", myEncoding);

byte[] postBytes = Encoding.ASCII.GetBytes(param);

HttpWebRequest req = (HttpWebRequest) HttpWebRequest.Create( "" );

req.Method = "POST";

req.ContentType = "application/x-www-form-urlencoded;charset=gb2312";

req.ContentLength = postBytes.Length;

using (Stream reqStream = req.GetRequestStream())

{

reqStream.Write(bs, 0, bs.Length);

}

using (WebResponse wr = req.GetResponse())

{

//在這里對(duì)接收到的頁(yè)面內(nèi)容進(jìn)行處理

}

從上面的代碼可以看出, POST 中文數(shù)據(jù)的時(shí)候,先使用 UrlEncode 方法將中文字符轉(zhuǎn)換為編碼后的 ASCII 碼,然后提交到服務(wù)器,提交的時(shí)候可以說(shuō)明編碼的方式,用來(lái)使對(duì)方服務(wù)器能夠正確的解析。

以上列出了客戶(hù)端程序使用 HTTP 協(xié)議與服務(wù)器交互的情況,常用的是 GET 和 POST 方式。現(xiàn)在流行的 WebService 也是通過(guò) HTTP 協(xié)議來(lái)交互的,使用的是 POST 方法。與以上稍有所不同的是, WebService 提交的數(shù)據(jù)內(nèi)容和接收到的數(shù)據(jù)內(nèi)容都是使用了 XML 方式編碼。所以, HttpWebRequest 也可以使用在調(diào)用 WebService 的情況下。

用vb.net實(shí)現(xiàn)網(wǎng)絡(luò)通信

用 vb.net socket通信

Dim th As Threading.Thread

2 Dim tcpl As System.Net.Sockets.TcpListener

3

4 Private Sub Form1_Load()Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

5 th = New System.Threading.Thread(New System.Threading.ThreadStart(AddressOf MyListen))

6 th.Start()

7 End Sub

8

9 Public Sub SendMessage()Sub SendMessage(ByVal IP As String, ByVal SendMsg As String)

10 Try

11 If IP "" Then

12 Dim tcpc As New System.Net.Sockets.TcpClient(IP, 5656)

13 Dim tcpStream As Net.Sockets.NetworkStream = tcpc.GetStream

14 Dim reqStream As New IO.StreamWriter(tcpStream)

15 reqStream.Write(SendMsg)

16 reqStream.Flush()

17 tcpStream.Close()

18 tcpc.Close()

19 End If

20 Catch ex As Exception

21 MsgBox(ex.Message.ToString)

22 End Try

23 End Sub

24 Private Sub MyListen()Sub MyListen()

25 Try

26 Dim ipAddress As System.Net.IPAddress = System.Net.Dns.Resolve(System.Net.Dns.GetHostName).AddressList(0)

27 tcpl = New System.Net.Sockets.TcpListener(ipAddress, 5656)

28 tcpl.Start()

29 While True

30 Dim s As System.Net.Sockets.Socket = tcpl.AcceptSocket()

31 Dim MyBuffer(1024) As Byte

32 Dim i As Integer

33 i = s.Receive(MyBuffer)

34 If i 0 Then

35 Dim lstrRec As String

36 Dim j As Integer

37 For j = 0 To i - 1

38 TextBox1.Text += Chr(MyBuffer(j)) ","

39 Next

40 End If

41 End While

42 Catch ex As Exception

43 MsgBox(ex.Message.ToString)

44 End Try

45 End Sub

46

47 Private Sub Button1_Click()Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

48 SendMessage("192.168.0.61", TextBox2.Text)

49 End Sub

VB.NET 如何通過(guò)TCP/IP協(xié)議通訊實(shí)現(xiàn)16進(jìn)制數(shù)據(jù)的接收?

傳輸Integer 數(shù)據(jù)類(lèi)型來(lái)傳輸比較方便.因?yàn)镮nteger 的取值可以是0x0000-0xFFFF .當(dāng)你把數(shù)據(jù)發(fā)送到目的主機(jī)后可以利用Hex() 把接收到的數(shù)據(jù)從十進(jìn)制轉(zhuǎn)換到十六進(jìn)制..

VB.NET和西門(mén)子smart通訊問(wèn)題。

西門(mén)子smart通訊可以用基于tcp的modbus協(xié)議

網(wǎng)上下載一個(gè)modubs協(xié)議工具就可以直接讀寫(xiě)m,db,w等內(nèi)存區(qū)

即使是大型plc,像1500系列的,都是可以這樣通訊的

VB.net 與三菱PLC通訊使用TCP/IP協(xié)議,如何讀寫(xiě)地址位

是的,是socket套接字編程。

不知道你用什么協(xié)議,矩形PLC是用Modbus-tcp協(xié)議,附件是矩形PLC基于Modbus-TCP的編程參考文檔,可以看看。

VB.NET和PLC通訊 ,小白有問(wèn)。

這個(gè)圈里的是通訊過(guò)程中傳送的Asc碼,包含了PLc的站號(hào)地址、指令、起始符等內(nèi)容,具體要看你的PLc通訊協(xié)議。通訊與開(kāi)關(guān)量是兩回事,你得補(bǔ)習(xí)下與通訊相關(guān)的內(nèi)容。

本文題目:vb.net通訊協(xié)議,vbnet tcp通訊
分享URL:http://m.newbst.com/article32/dssiepc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷(xiāo)型網(wǎng)站建設(shè)網(wǎng)站改版虛擬主機(jī)網(wǎng)站設(shè)計(jì)做網(wǎng)站小程序開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)