C# Socket通信DEMO
2021-01-29 04:16
标签:component poi vertica protocol this blend dispatch org 目标 套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。 二、建立socket连接 建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。 三、服务端与客户端代码 1.服务端前台XMAL 2.服务端后台代码 3.客户端前台XMAL 4.客户端后台代码 C# Socket通信DEMO 标签:component poi vertica protocol this blend dispatch org 目标 原文地址:https://www.cnblogs.com/jasonlai2016/p/11869054.html一、套接字(socket)概念
应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。应 用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。
套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。
Window x:Class="WPFAPP.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WPFAPP"
mc:Ignorable="d"
Title="服务端" Height="350" Width="525" Loaded="Window_Loaded" >
Grid>
Grid.RowDefinitions>
RowDefinition Height="50*"/>
RowDefinition Height="190*"/>
RowDefinition Height="81*"/>
Grid.RowDefinitions>
Grid Grid.Row="0">
WrapPanel VerticalAlignment="Center">
Label Padding="5">IP:Label>
TextBox Padding="3" Width="150" Name="IP">TextBox>
Label Padding="5">Port:Label>
TextBox Padding="3" Width="100" Name="Port">TextBox>
Button Padding="3" Margin="3" Click="Start_View_Click">开始监听Button>
Button Padding="3" Margin="3" Click="Stop_Click">停止监听Button>
WrapPanel>
Grid>
Grid Grid.Row="1">
ListBox Name="ListConnet">ListBox>
Grid>
Grid Grid.Row="2">
Grid.ColumnDefinitions>
ColumnDefinition Width="405*"/>
ColumnDefinition Width="113*"/>
Grid.ColumnDefinitions>
TextBox Name="SentConnet">TextBox>
Button Grid.Column="1" Click="Send_Click">发送Button>
Grid>
Grid>
Window>
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Windows;
namespace WPFAPP
{
///
Window x:Class="WPFClient.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WPFClient"
mc:Ignorable="d"
Title="客户端" Height="350" Width="525">
Grid>
Grid.RowDefinitions>
RowDefinition Height="50*"/>
RowDefinition Height="50*"/>
RowDefinition Height="200
*"/>
Grid.RowDefinitions>
Grid Grid.Row="0">
WrapPanel VerticalAlignment="Center">
Label Padding="5">IP:Label>
TextBox Padding="3" Width="150" Name="IP">TextBox>
Label Padding="5">Port:Label>
TextBox Padding="3" Width="100" Name="Port">TextBox>
Button Padding="3" Margin="3" Click="Start_View_Click">连接Button>
Button Padding="3" Margin="3" Click="Stop_Click">断开连接Button>
WrapPanel>
Grid>
Grid Grid.Row="1">
TextBox Name="ListConnet">TextBox>
Grid>
Grid Grid.Row="2">
Grid.ColumnDefinitions>
ColumnDefinition Width="405*"/>
ColumnDefinition Width="113*"/>
Grid.ColumnDefinitions>
TextBox Name="SentConnet">TextBox>
Button Grid.Column="1" Click="Send_Click">发送Button>
Grid>
Grid>
Window>
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Windows;
namespace WPFClient
{
///
上一篇:win10配置jdk12环境变量