`

最简单的Socket程序[入门篇]

阅读更多

using System.Net.Sockets;
using System.Net;
using System.Threading;

namespace ChatUDPVersion
{
public partial class frmChat : Form
{
delegate void SetTextCallback(string text);

bool isOpen = true;
Thread thread;

public frmChat()
{
InitializeComponent();
}

private void btnSend_Click(object sender, EventArgs e)
{
UdpClient clientSend = new UdpClient(Dns.GetHostName(), 8008);
try
{
Byte[] sendInfo = Encoding.Default.GetBytes(tbSend.Text);
clientSend.Send(sendInfo, sendInfo.Length);
tbSend.Text = string.Empty;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
clientSend.Close();
}
}
private void GetMessage()
{
UdpClient client = new UdpClient(8008);
IPEndPoint ipRemoteEndPoint = new IPEndPoint(IPAddress.Any, 8008);
byte[] receInfo;
while (isOpen)
{
try
{
receInfo = client.Receive(ref ipRemoteEndPoint);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
break;
}
AddMessage(Encoding.Default.GetString(receInfo));
}
client.Close();
}

public void AddMessage(string message)
{
if (this.lbReceive.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(AddMessage);
this.Invoke(d, new object[] { message });
}
else
{
lbReceive.Items.Add(message);
}
}

private void frmChat_Load(object sender, EventArgs e)
{

thread = new Thread(new ThreadStart(this.GetMessage));
thread.IsBackground = true;
thread.Start();
}

private void frmChat_FormClosing(object sender, FormClosingEventArgs e)
{
isOpen = false;
Application.Exit();
}
}
}

分享到:
评论

相关推荐

    有关Java的Socket编程入门例子

    Java的Socket编程是网络编程的基础,它允许两个网络应用程序之间建立通信链接,进行数据传输。在Java中,Socket是java.net包的一部分,提供了客户端/服务器通信的基本接口。本篇文章将深入探讨Socket编程的基础知识...

    C_socket编程从入门到精通

    【C_socket编程从入门到...掌握这些基础知识,你就能编写出能够进行网络通信的程序,无论是简单的文件传输还是复杂的分布式系统,Socket编程都是不可或缺的技能。在实践中不断探索和学习,你将逐渐精通C Socket编程。

    socket入门 带有简单例子

    为了更好地理解这些概念,我们可以创建一个简单的Socket程序,例如一个"Hello, World!"服务器和客户端。服务器端创建Socket,绑定到本地地址,监听并接受连接,然后接收客户端发送的消息并回应。客户端则连接到...

    一个最简单的聊天程序

    本篇文章将详细讲解如何利用Java编写一个最简单的聊天程序。 首先,我们需要理解Java中的基本概念。Java是一种面向对象的语言,它的核心特性包括封装、继承和多态性。在构建聊天程序时,我们将主要使用面向对象的...

    socket编程入门

    本篇文章将介绍如何使用UDP(用户数据报协议)来实现简单的Socket编程,并通过一个实际的例子来帮助读者更好地理解和掌握这一技术。 #### 二、Socket简介 Socket是应用程序与网络通信协议栈之间的一个抽象层,它为...

    Linux_socket_编程入门

    ### Linux Socket 编程入门详解 #### 一、引言 在深入了解Linux Socket编程之前,有必要先对Socket有一个基本的认知。Socket本质上是一种通信协议,它允许不同计算机间的进程相互通信。在本篇中,我们将从一个简单...

    python的socket编程入门

    Python的socket编程入门知识点总结: 1. socket简介: Socket是网络编程的一种方式...对于初学者而言,这是一篇很好的入门教程,但对于想要构建实际项目的人来说,还需要更多地学习相关的安全知识和高级网络编程技术。

    C# 常用协议实现模版及FixedSizeReceiveFilter示例(SuperSocket入门)

    Socket里面的协议解析是Socket通讯程序设计中最复杂的地方,如果你的应用层协议设计或实现不佳,Socket通讯中常见的粘包,分包就难以避免。SuperSocket内置了命令行格式的协议CommandLineProtocol,如果你使用了其它...

    Linux网络编程-简单的客户端和服务器通讯程序开发入门.docx

    本篇文章将深入探讨这些知识点,以便于初学者入门。 首先,客户端和服务器程序在网络编程中的角色至关重要。服务器程序通常先启动,监听特定端口上的连接请求,而客户端程序则负责发起连接。在Linux中,开发者可以...

    Winsock开发网络通信程序的经典入门

    本篇将深入探讨使用VC++(Visual C++)和Winsock开发网络通信程序的经典入门知识。 一、Winsock基础 1. Winsock初始化:在编写任何网络通信代码之前,必须先加载Winsock库。这通过调用`WSAStartup`函数完成,它会...

    WindowsSOCKET编程.doc

    《Windows SOCKET编程》这篇文档是针对Windows环境下的网络编程进行详细介绍的资料,旨在帮助开发者提升网络编程技能,尤其是Windows平台的网络编程能力。作者强调,该文档不仅是为了个人的学习总结,也希望对初学者...

    C socket 指南

    【C Socket 指南】是一篇面向C语言程序员的网络编程入门教程,旨在帮助初学者理解和掌握Socket编程。在Unix或类Unix系统中,Socket是实现进程间通信(IPC)的一种方式,它使用文件描述符作为接口,使得程序能够进行...

    mina入门程序

    本篇将带你深入理解Mina的基本概念,以及如何通过一个简单的入门程序来熟悉其工作原理。 首先,我们需要了解Mina的核心组件。Mina的核心包括`IoSession`、`FilterChain`和`ProtocolCodec`等。`IoSession`是Mina中...

    Java sockets 101

    - 为了帮助初学者理解Socket的基本工作原理,我们可以从一个最简单的Socket实现开始。 - 例如,创建一个简单的服务器端程序,监听指定端口上的连接请求;同时创建一个客户端程序,向该服务器发送数据并接收响应。 - ...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让知识环环相扣,降低了学习的难度 通过大量的比喻、类比、对比和图示等多种讲解方式,学习效果好 对Java语言的每个语法都提供了一个或多个例程讲解 ...

    VB从入门到实践

    因此,本篇文章将基于标题、描述以及可能涉及的一些核心概念来构建与“VB从入门到实践”相关的知识点。 ### VB从入门到实践 #### 1. Visual Basic (VB) 简介 - **定义**:Visual Basic(简称VB)是一种由微软开发...

    c#网络编程聊天室

     本文是该系列第一篇,主要讲述了基于套接字(Socket)进行网络编程的基本概念,其中包括TCP协议、套接字、聊天程序的三种开发模式,以及两个基本操作:侦听端口、连接远程服务端;第二篇讲述了一个简单的范例:从...

    Visual.C#2010从入门到精通

    8.1.4 一个简单的图形程序 119 8.2 设备环境的相关类 121 8.2.1 CDC类 121 8.2.2 CPaintDC类 123 8.2.3 CClientDC类 125 8.2.4 CWindowDC类 126 8.3 GDI对象 127 8.3.1 GDI对象的种类 127 8.3.2 GDI对象的生命周期 ...

Global site tag (gtag.js) - Google Analytics