`
leonardleonard
  • 浏览: 820766 次
社区版块
存档分类
最新评论

C#下用P2P技术实现点对点聊天

阅读更多
.NET将关于多线程的功能定义在System.Threading名字空间中。因此,要使用多线程,必须先声明引用此名字空间(using System.Threading;)。
即使你没有编写多线程应用程序的经验,也可能听说过“启动线程”“杀死线程”这些词,其实除了这两个外,涉及多线程方面的还有诸如“暂停线程”“优先级”“挂起线程”“恢复线程”等等。下面将一个一个的解释。
a.启动线程
顾名思义,“启动线程”就是新建并启动一个线程的意思,如下代码可实现:
Thread thread1 = new Thread(new ThreadStart( Count));
其中的 Count 是将要被新线程执行的函数。
b.杀死线程
“杀死线程”就是将一线程斩草除根,为了不白费力气,在杀死一个线程前最好先判断它是否还活着(通过 IsAlive 属性),然后就可以调用 Abort 方法来杀死此线程。
c.暂停线程
它的意思就是让一个正在运行的线程休眠一段时间。如 thread.Sleep(1000); 就是让线程休眠1秒钟。
d.优先级
这个用不着解释了。Thread类中有一个ThreadPriority属性,它用来设置优先级,但不能保证操作系统会接受该优先级。一个线程的优先级可分为5种:Normal, AboveNormal, BelowNormal, Highest, Lowest。具体实现例子如下:
thread.Priority = ThreadPriority.Highest;
e.挂起线程
Thread类的Suspend方法用来挂起线程,知道调用Resume,此线程才可以继续执行。如果线程已经挂起,那就不会起作用。
if (thread.ThreadState = ThreadState.Running)
{
thread.Suspend();
}
f.恢复线程
用来恢复已经挂起的线程,以让它继续执行,如果线程没挂起,也不会起作用。
if (thread.ThreadState = ThreadState.Suspended)
{
thread.Resume();
}
下面将列出一个例子,以说明简单的线程处理功能。此例子来自于帮助文档。
using System;
using System.Threading;

// Simple threading scenario: Start a static method running
// on a second thread.
public class ThreadExample {
// The ThreadProc method is called when the thread starts.
// It loops ten times, writing to the console and yielding
// the rest of its time slice each time, and then ends.
public static void ThreadProc() {
for (int i = 0; i < 10; i++) {
Console.WriteLine("ThreadProc: {0}", i);
// Yield the rest of the time slice.
Thread.Sleep(0);
}
}

public static void Main() {
Console.WriteLine("Main thread: Start a second thread.");
// The constructor for the Thread class requires a ThreadStart
// delegate that represents the method to be executed on the
// thread. C# simplifies the creation of this delegate.
Thread t = new Thread(new ThreadStart(ThreadProc));
// Start ThreadProc. On a uniprocessor, the thread does not get
// any processor time until the main thread yields. Uncomment
// the Thread.Sleep that follows t.Start() to see the difference.
t.Start();
//Thread.Sleep(0);

for (int i = 0; i < 4; i++) {
Console.WriteLine("Main thread: Do some work.");
Thread.Sleep(0);
}

Console.WriteLine("Main thread: Call Join(), to wait until ThreadProc ends.");
t.Join();
Console.WriteLine("Main thread: ThreadProc.Join has returned. Press Enter to end program.");
Console.ReadLine();
}
}

此代码产生的输出类似如下内容:

Main thread: Start a second thread.
Main thread: Do some work.
ThreadProc: 0
Main thread: Do some work.
ThreadProc: 1
Main thread: Do some work.
ThreadProc: 2
Main thread: Do some work.
ThreadProc: 3
Main thread: Call Join(), to wait until ThreadProc ends.
ThreadProc: 4
ThreadProc: 5
ThreadProc: 6
ThreadProc: 7
ThreadProc: 8
ThreadProc: 9
Main thread: ThreadProc.Join has returned. Press Enter to end program. 


 
分享到:
评论

相关推荐

    C#下用P2P技术实现点对点聊天internet

    C#下用P2P技术实现点对点聊天internet

    c#实现voicechat_p2p点对点语音对讲程序.rar

    综上所述,"c#实现voicechat_p2p点对点语音对讲程序.rar"这个项目涵盖了C#与Windows音频系统交互、音频编码解码、网络编程等多个技术领域,是学习和实践这些技术的一个良好平台。通过深入理解并实现这个程序,开发者...

    c#点对点P2P聊天软件

    综上所述,"c#点对点P2P聊天软件"的开发涵盖了C#编程基础、网络通信、多线程编程、UI设计、数据交换以及安全性等多个方面,是一个综合性的项目,能帮助开发者全面掌握多种技术。在mychat1这个项目文件中,包含了实现...

    C# p2p点对点聊天

    在本文中,我们将深入探讨如何使用C#编程语言构建一个P2P(点对点)聊天应用程序。P2P网络架构允许用户之间直接通信,无需通过中心服务器,从而提供了更高效、灵活的通信方式。 首先,理解P2P网络的基本原理至关...

    用C#实现点对点聊天

    本项目“用C#实现点对点聊天”旨在通过TCP/IP协议创建一个简单的点对点通信系统,使得两个用户能够进行实时聊天。TCP/IP协议是互联网通信的基础,确保了数据的可靠传输。 点对点(P2P)通信模型不同于传统的客户端-...

    c#实现p2p点对点的信息传输

    通过以上分析,我们可以看到利用C#实现P2P点对点的信息传输主要涉及Socket编程、TCP协议、多线程处理等方面的技术。在实际开发过程中,还需要考虑到错误处理、安全性以及可扩展性等问题。此外,随着技术的发展,还...

    c# 实现p2p通信,c#p2p局域网聊天源码

    在本文中,我们将深入探讨如何使用C#语言实现P2P(点对点)通信,特别是在局域网环境中创建一个简单的聊天应用。P2P通信是一种网络架构,其中每个节点既是客户端也是服务器,允许直接的数据交换。对于初学者来说,...

    P2P点对点聊天(c#开发)

    P2P点对点聊天系统是一种基于P2P(Peer-to-Peer)网络技术的通信方式,用户之间可以直接交换信息,无需通过中心服务器。在C#中开发这样的系统,需要理解并掌握以下关键知识点: 1. **P2P网络原理**:P2P网络中的每...

    C#中使用异步Socket实现点对点通信

    在C#编程中,利用异步Socket实现点对点(P2P)通信是一种常见的网络编程技术,可以创建高效、可扩展的网络应用。异步Socket编程的核心在于它允许程序在执行其他操作的同时处理网络I/O,提高了程序的响应性和整体性能...

    c# P2P的使用,TCP,点对点聊天,群发,文件发送

    在这个场景下,我们将讨论如何在C#中利用TCP(Transmission Control Protocol)实现P2P的点对点聊天、群发消息以及文件发送功能。 首先,我们需要理解TCP协议。TCP是一种面向连接的、可靠的传输层协议,它保证了...

    p2p聊天程序(c#)

    【标题】"p2p聊天程序(c#)"揭示了我们要探讨的核心主题:使用C#编程语言构建一个点对点(P2P)聊天应用。P2P网络是一种网络架构,其中每个节点(或用户)都可以作为服务的提供者和消费者,与传统客户端-服务器模式...

    C# 简单点对点聊天

    本项目"DotAndDotCose"就是使用C#实现的一个简单点对点聊天系统,适用于学习和理解P2P通信的基本原理。 在C#中实现点对点聊天,主要涉及以下几个核心知识点: 1. **套接字编程**:C#的System.Net.Sockets命名空间...

    P2P点对点聊天 源码

    总结,P2P点对点聊天系统利用C#编程语言和P2P技术实现了局域网内的即时通讯,其源码揭示了网络通信、节点发现、数据传输等关键环节的实现细节。通过对源码的深入理解和实践,开发者可以更好地掌握P2P网络编程和C#的...

    P2P点对点聊天系统

    《P2P点对点聊天系统详解》 点对点(P2P)聊天系统是一种基于互联网的通信模式,它允许用户之间直接进行通信,无需通过中心服务器作为中介。这种技术在即时通讯软件、文件共享等领域广泛应用。本系统采用C#编程语言...

    C#P2P聊天软件

    【C# P2P聊天软件】是一个基于C#编程语言实现的点对点通信系统,它允许用户之间直接进行实时的聊天交流。P2P(Peer-to-Peer)技术是互联网通信的一种架构,其中每个参与者既是客户端也是服务器,无需通过中心服务器...

    P2P聊天室 C#

    在C#中,我们可以使用System.Net命名空间下的类来实现P2P通信。例如,使用Socket类创建并管理网络连接,使用IPAddress和IPEndPoint类来表示IP地址和端口号,使用TcpClient和TcpListener类进行TCP连接的建立与监听。 ...

    p2p点对点聊天C#源码

    【P2P点对点聊天C#源码】是一个基于C#编程语言实现的聊天应用程序,它利用了P2P(Peer-to-Peer)技术,实现了用户之间直接通信的功能,无需通过中央服务器作为中介。这种架构的优势在于它可以降低服务器压力,提高...

    C#点对点聊天

    在本文中,我们将深入探讨如何使用C#编程语言构建一个点对点聊天应用程序,以及如何实现窗口震动功能。C#是一种强大的、面向对象的编程语言,由微软开发,广泛应用于Windows桌面应用、游戏开发和服务器端编程。点对...

    c# p2p聊天室工具

    在本文中,我们将深入探讨如何使用C#编程语言来实现一个点对点(P2P)聊天室工具。点对点通信是一种网络架构,其中每个参与者(或节点)可以直接与其他节点进行通信,而无需通过中央服务器。这种模式在即时通讯应用...

    C# 基于Directshow的p2p视频聊天系统

    为了实现视频聊天,还需要处理以下关键技术点: 1. **视频编码与解码**:为了在网络上传输,原始视频数据需要经过压缩编码。常见的视频编码标准有H.264、VP8和AV1等。编码后的数据在接收端再进行解码,恢复成原始...

Global site tag (gtag.js) - Google Analytics