TCP/UDP编程基础

本文介绍了TCP/UDP的基础知识,包括Socket套接字、TCP和UDP的特点及编程步骤。并展示了如何使用C#编写控制台程序,通过UDP和TCP套接字实现消息的发送,包括单线程和多线程的实现方式。
摘要由CSDN通过智能技术生成

目录

一、前言

(一)Socket套接字

(二)TCP

(三)UDP

二、C#编写一个命令行/控制台的简单hello world程序

(一)C#创建控制台应用

 (二)C#实现窗口输出helloworld

(三)C#控制台程序利用UDP套接字实现消息的发送

(四)C#窗口程序利用TCP套接字实现消息的发送


一、前言

(一)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");
        }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值