黑马程序员_Socket入门

本文探讨了WindowsPhone7手机开发中Socket的概念及其应用,包括Socket的连接方式和相关类方法,同时介绍了.NET培训的相关内容。文章详细解释了Socket作为通信链句柄的作用,以及流式Socket和数据报式Socket的区别。此外,提供了服务端和客户端Socket的典型应用模式,并展示了Socket的通信流程,包括服务端向客户端发送字符串和客户端接收数据的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-------Windows Phone 7手机开发.Net培训、期待与您交流! ------- 

| Socket通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。(其实就是两个程序通信用的

| 在internet上有很多这样的主机,这些主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务(应用程序)。

Socket的连接方式

流式Socket(stream)是一种面向连接的Socket,针对于面向连接的TCP服务应用,安全,但是效率低。

数据报式Socket(datagram)是一种无连接的Socket,对应于无连接的UDP服务应用,不安全(丢失,顺序混乱,在接收端要分析重排及要求重发)但效率高。

Socket方法

相关的类:

IPAddress类:包含了一个IP地址

IPEndPoint类:包含了一对IP地址和端口号

相关的方法:

Socket():创建一个Socket

Bind():绑定一个本地的IP和端口号(IPEndPoint)

Listen():让Socket侦听传入的连接尝试,并指定侦听队列容量

Connect():初始化与另一个Socket的连接

Accept():接收连接并返回一个新的Socket

Send():输出数据到Socket

Receive():从Socket中读取数据

Close():关闭Socket(销毁连接)

Socket一般应用模式

服务端的Socket(至少需要两个)

1一个负责接收客户端连接请求(不负责通信)

2每成功接收到一个客户端的连接便在服务端产生一个对应的Socket

       在接收到客户端连接时创建

       为每个连接成功的客户端请求在服务端都创建一个对应的Socket(负责和客户端通信)

客户端的Socket

必须指定要连接的客户端地址和端口

通过创建一个Socket对象来初始化一个到服务器端的TCP连接

服务端:

 

客户端:

 

因为Accept()方法会阻塞当前线程,所以采用多线程方式接收请求。多线程的方法代码:

  

Socket的通信

服务端向客户端发送字符串,需要先将字符串编码成字节数组,然后使用套接字的Send方法,将字节数组发送出去。

客户端接收数据需要先定义一个缓存区,然后使用Receive方法将接收的数据存放到缓存区。接着将接收的数据转码成字符串输出显示。

服务端代码:

 

客户端代码:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值