0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

簡析C# Socket程序結(jié)構(gòu)及應(yīng)用

機(jī)器人及PLC自動化應(yīng)用 ? 來源:機(jī)器人及PLC自動化應(yīng)用 ? 作者:機(jī)器人及PLC自動化 ? 2021-05-08 10:16 ? 次閱讀

57349c86-a4ce-11eb-aece-12bb97331649.jpg

簡易的機(jī)器人PLC信息提取。

----Socket程序結(jié)構(gòu)分析: ---------

privateSocket server; 聲明 Socket類提供一組豐富的網(wǎng)絡(luò)通信方法和屬性。

privateSocket client;

public void OpenTCP() ----建立程序

{

myThreadDelegate = new ThreadStart(Listen);

委托屬性的變量激活委托指令啟動線程監(jiān)聽

myThread = new Thread(myThreadDelegate);初始化線程類型變量

myThread.Start();線程類型變量開始執(zhí)行

}

///

/// 創(chuàng)建TCP服務(wù)端并監(jiān)聽

///

public void Listen()//創(chuàng)建tcp服務(wù)端

{

//設(shè)置IP

string IP = ipAddressTB.Text;

57626f8a-a4ce-11eb-aece-12bb97331649.png

int Port = Convert.ToInt32(portTB.Text); 設(shè)置端口

5783e55c-a4ce-11eb-aece-12bb97331649.png

//初始化終結(jié)點(diǎn)實(shí)例

IPEndPoint localEP = new IPEndPoint(IPAddress.Parse(IP), Port);用指定的地址和端口號初始化

//初始化SOCKET實(shí)例

server = new Socket(localEP.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

//允許SOCKET被綁定在已使用的地址上。

Socket(AddressFamily, SocketType, ProtocolType)使用指定的地址族、套接字類型和協(xié)議初始化

server.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);

ShowMsg(“等待客戶端連接。。。”); 發(fā)出信息

try

{

//綁定

server.Bind(localEP);

//監(jiān)聽10次

server.Listen(10);

client = server.Accept(); 服務(wù)接收

IPEndPoint clientIP = (IPEndPoint)client.RemoteEndPoint;

ShowMsg(“已連接的客戶端:” + clientIP.Address + “,端口:” + clientIP.Port);

Received_Robot();從機(jī)器人接收信息

}

catch (Exception ex)

{

//MessageBox.Show(ex.Message, “Listen_Error”);

}

}

IPEndPoint(IPAddress.Parse(IP), Port)

o4YBAGCV9O-AXTskAAAcizOnwJY991.png

Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)

o4YBAGCV9RaAC55IAAAGfU3v1q8691.png

Stream支持可靠、雙向、基于連接的字節(jié)流,而不重復(fù)數(shù)據(jù),也不保留邊界。 此類型的 Socket 與單個對方主機(jī)通信,并且在通信開始之前需要建立遠(yuǎn)程主機(jī)連接。 Stream使用傳輸控制協(xié)議 (ProtocolType.Tcp) 和 AddressFamily。InterNetwork 地址族。

o4YBAGCV9TOAW9t5AAAEwPouyLI967.png

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    211

    文章

    28418

    瀏覽量

    207103
  • plc
    plc
    +關(guān)注

    關(guān)注

    5011

    文章

    13297

    瀏覽量

    463394
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1353

    瀏覽量

    79077
  • 客戶端
    +關(guān)注

    關(guān)注

    1

    文章

    290

    瀏覽量

    16688

原文標(biāo)題:C# Socket程序結(jié)構(gòu)分析及應(yīng)用

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機(jī)器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    socket 和 UDP 協(xié)議的對比

    。 Socket 定義 Socket 是一個抽象層,它提供了一種方式,使得應(yīng)用程序能夠發(fā)送和接收數(shù)據(jù)。在網(wǎng)絡(luò)編程中,Socket 允許程序創(chuàng)
    的頭像 發(fā)表于 11-12 14:28 ?288次閱讀

    socket 與 RESTful API 的使用

    Socket是一種網(wǎng)絡(luò)通信協(xié)議,它允許程序在網(wǎng)絡(luò)中進(jìn)行雙向通信。Socket分為客戶端Socket和服務(wù)器端Socket,客戶端
    的頭像 發(fā)表于 11-12 14:22 ?288次閱讀

    socket 連接超時處理技巧

    在網(wǎng)絡(luò)編程中,Socket連接超時是一個常見的問題。處理超時的關(guān)鍵在于確保程序能夠優(yōu)雅地處理這些情況,避免程序崩潰或者無響應(yīng)。以下是一些處理Socket連接超時的技巧。 1. 設(shè)置合理
    的頭像 發(fā)表于 11-12 14:13 ?421次閱讀

    socket 與 HTTP 協(xié)議的關(guān)系

    在計(jì)算機(jī)網(wǎng)絡(luò)中,Socket和HTTP協(xié)議是兩個非常重要的概念,它們在數(shù)據(jù)傳輸和網(wǎng)絡(luò)通信中扮演著關(guān)鍵的角色。 1. Socket的概念 Socket是一種通信機(jī)制,它允許兩個程序(一個
    的頭像 發(fā)表于 11-12 14:12 ?224次閱讀

    socket 發(fā)送和接收數(shù)據(jù)方法

    1. Socket 基本概念 在網(wǎng)絡(luò)編程中,socket 是一個通信端點(diǎn)。它允許程序發(fā)送和接收數(shù)據(jù)。根據(jù)通信協(xié)議的不同,socket 可以分為以下幾種類型: 流式
    的頭像 發(fā)表于 11-12 14:07 ?441次閱讀

    socket 編程基礎(chǔ)入門

    Socket 編程基礎(chǔ)入門 在計(jì)算機(jī)網(wǎng)絡(luò)中,Socket 是一個抽象層,它將網(wǎng)絡(luò)通信的細(xì)節(jié)隱藏起來,為開發(fā)者提供了一個簡單的接口來發(fā)送和接收數(shù)據(jù)。Socket 編程是網(wǎng)絡(luò)編程的基礎(chǔ),它允許程序
    的頭像 發(fā)表于 11-12 14:03 ?315次閱讀

    C語言中的socket編程基礎(chǔ)

    Socket編程簡介 Socket是一種通信機(jī)制,允許程序之間進(jìn)行通信。在C語言中,socket編程是網(wǎng)絡(luò)編程的基礎(chǔ)。通過使用
    的頭像 發(fā)表于 11-01 16:51 ?325次閱讀

    socket編程中的阻塞與非阻塞

    在網(wǎng)絡(luò)編程中, socket 是一個非常重要的概念,它提供了一個抽象層,使得開發(fā)者可以不必關(guān)心底層的網(wǎng)絡(luò)通信細(xì)節(jié)。 socket 編程中的阻塞與非阻塞模式是兩種不同的操作方式,它們對程序的響應(yīng)性
    的頭像 發(fā)表于 11-01 16:13 ?211次閱讀

    什么是socket編程 socket與tcp/ip協(xié)議的關(guān)系

    什么是Socket編程 Socket編程是一種網(wǎng)絡(luò)編程技術(shù),它允許程序之間進(jìn)行通信。在計(jì)算機(jī)科學(xué)中,socket是一個抽象的概念,它代表了兩個應(yīng)用
    的頭像 發(fā)表于 11-01 16:01 ?335次閱讀

    labview中常用的程序結(jié)構(gòu)有哪幾種

    ,簡稱NI)開發(fā),廣泛應(yīng)用于工程、科學(xué)和教育領(lǐng)域。LabVIEW通過圖形化編程界面,使用戶能夠快速構(gòu)建復(fù)雜的數(shù)據(jù)采集、儀器控制、信號處理和用戶界面等應(yīng)用程序。在LabVIEW中,程序結(jié)構(gòu)是組織代碼
    的頭像 發(fā)表于 09-04 16:32 ?794次閱讀

    socket的基本概念和原理

    Socket是一種通信協(xié)議,用于在網(wǎng)絡(luò)中實(shí)現(xiàn)進(jìn)程間的通信。它是一種抽象的編程接口,允許應(yīng)用程序通過網(wǎng)絡(luò)發(fā)送和接收數(shù)據(jù)。 1. 什么是Socket? Socket是一種端點(diǎn),用于在網(wǎng)絡(luò)中
    的頭像 發(fā)表于 08-16 10:51 ?1170次閱讀

    如何理解socket編程接口

    Socket編程接口是一種網(wǎng)絡(luò)編程的基本概念,它提供了一種在不同計(jì)算機(jī)之間進(jìn)行通信的方法。 Socket編程接口的基本概念 1.1 Socket的定義 Socket是一種通信端點(diǎn),它提
    的頭像 發(fā)表于 08-16 10:48 ?419次閱讀

    技術(shù)干貨驛站 ▏深入理解C語言:掌握程序結(jié)構(gòu)知識

    在計(jì)算機(jī)編程的世界中,C語言被廣泛認(rèn)可為一門強(qiáng)大而高效的編程語言,其簡潔的語法和直接的指令使得它成為了許多程序員的首選。了解C語言的程序結(jié)構(gòu)和基本語法對于初學(xué)者來說至關(guān)重要。從一個簡單
    的頭像 發(fā)表于 07-27 08:45 ?1385次閱讀
    技術(shù)干貨驛站 ▏深入理解<b class='flag-5'>C</b>語言:掌握<b class='flag-5'>程序結(jié)構(gòu)</b>知識

    巖土工程監(jiān)測中振弦采集儀的布設(shè)方案及實(shí)施步驟

    巖土工程監(jiān)測中振弦采集儀的布設(shè)方案及實(shí)施步驟 巖土工程監(jiān)測中,河北穩(wěn)控科技振弦采集儀是一種常用的地下水位和土層壓縮性監(jiān)測工具。它通過采集振弦的振動信號來確定地下水位和土層的壓縮性,為巖土
    的頭像 發(fā)表于 05-06 13:25 ?256次閱讀
    巖土工程監(jiān)測中振弦采集儀的布設(shè)方案及實(shí)施步驟<b class='flag-5'>簡</b><b class='flag-5'>析</b>

    【鴻蒙】OpenHarmony 4.0藍(lán)牙代碼結(jié)構(gòu)

    OpenHarmony 4.0藍(lán)牙代碼結(jié)構(gòu)前言 OpenHarmony 4.0上藍(lán)牙倉和目錄結(jié)構(gòu)進(jìn)行一次較大整改,本文基于4.0以上版本對藍(lán)牙代碼進(jìn)行分析,便于讀者快速了解和學(xué)習(xí)
    的頭像 發(fā)表于 02-26 16:08 ?1570次閱讀
    【鴻蒙】OpenHarmony 4.0藍(lán)牙代碼<b class='flag-5'>結(jié)構(gòu)</b><b class='flag-5'>簡</b><b class='flag-5'>析</b>