目录
二、C#编写一个命令行/控制台的简单hello world程序
一、前言
(一)Socket套接字
Socket是一个编程接口(网络编程接口)。
作用是用来实现网络上不同主机上的应用程序之间进行双向通信。
套接字是一种特殊的文件描述符,也就意味着我们使用套接字实现网络通信可以使用write/read。
要实现互联网通信,至少需要一对套接字,其中一个运行在客户端(client socket),一个运行
服务器端(server socket).
Socket可以分为三类:
1) 流式套接字(SOCK_STRAM)
流式套接字用于提供面向连接、可靠的数据传输服务。
主要针对传输层协议为TCP协议的应用。
2) 数据报套接字(SOCK_DGRAM)
数据报套接字提供一种无连接的服务(并不能保证数据传输的可靠性)。
主要针对传输层协议为UDP协议的应用。
3) 原始套接字(SOCK_RAW)
原始套接字可以直接跳过传输层读取没有处理的IP数据包。
而流式套接字只能读取TCP协议的数据,数据报套接字只能读取UDP协议的数据。
因此,如果要访问其他协议发送的数据必须要使用原始套接字。
(二)TCP
TCP协议提供的是端到端服务。TCP协议所提供的端到端的服务是保证信息一定能够到达目的地址。它是一种面向连接的协议。
TCP编程的服务器端一般步骤
①创建一个socket,用函数socket()
②绑定IP地址、端口等信息到socket上,用函数bind()
③开启监听,用函数listen()
④接收客户端上来的连接,用函数accept()
⑤收发数据,用函数send()和recv(),或者read()和write()
⑥关闭网络连接;
⑦关闭监听;
TCP编程的客户端一般步骤
①创建一个socket,用函数socket()
②设置要连接的对方的IP地址和端口等属性
③连接服务器,用函数connect()
④收发数据,用函数send()和recv(),或者read()和write()
⑤关闭网络连接
(三)UDP
UDP协议提供了一种不同于TCP协议的端到端服务。UDP协议所提供的端到端传输服务是尽力而为(best-effort)的,即UDP套接字将尽可能地传送信息,但并不保证信息一定能成功到达目的地址,而且信息到达的顺序与其发送顺序不一定一致。
UDP编程的服务器端一般步骤
①创建一个socket,用函数socket()
②绑定IP地址、端口等信息到socket上,用函数bind()
③循环接收数据,用函数recvfrom()
④关闭网络连接
UDP编程的客户端一般步骤
①创建一个socket,用函数socket()
②设置对方的IP地址和端口等属性
③发送数据,用函数sendto()
④关闭网络连接
二、C#编写一个命令行/控制台的简单hello world程序
(一)C#创建控制台应用
打开VS2019,创建一个空的控制台应用
在主函数中添加helloworld输出
Console.WriteLine("Hello World!");
Console.ReadKey();
运行效果:
(二)C#实现窗口输出helloworld
创建项目
添加控件
添加一个button和textbox
双击按钮自动生成一个click事件,在click事件中调用showMsg()函数,showMsg函数编写如下
void showMsg()
{
//向文本控件中添加HelloWorld
textBox1.AppendText("Hello World!" + "\t\n");
}