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.net包的一部分,提供了客户端/服务器通信的基本接口。本篇文章将深入探讨Socket编程的基础知识...
【C_socket编程从入门到...掌握这些基础知识,你就能编写出能够进行网络通信的程序,无论是简单的文件传输还是复杂的分布式系统,Socket编程都是不可或缺的技能。在实践中不断探索和学习,你将逐渐精通C Socket编程。
本篇文章将深入浅出地介绍Socket编程的基本概念、关键函数和应用场景,旨在帮助初学者快速入门。 首先,我们需要了解什么是Socket。Socket在Unix系统中被视作一种文件描述符,它是一个用于进程间通信的抽象接口,...
为了更好地理解这些概念,我们可以创建一个简单的Socket程序,例如一个"Hello, World!"服务器和客户端。服务器端创建Socket,绑定到本地地址,监听并接受连接,然后接收客户端发送的消息并回应。客户端则连接到...
本篇文章将详细讲解如何利用Java编写一个最简单的聊天程序。 首先,我们需要理解Java中的基本概念。Java是一种面向对象的语言,它的核心特性包括封装、继承和多态性。在构建聊天程序时,我们将主要使用面向对象的...
本篇文章将介绍如何使用UDP(用户数据报协议)来实现简单的Socket编程,并通过一个实际的例子来帮助读者更好地理解和掌握这一技术。 #### 二、Socket简介 Socket是应用程序与网络通信协议栈之间的一个抽象层,它为...
### Linux Socket 编程入门详解 #### 一、引言 在深入了解Linux Socket编程之前,有必要先对Socket有一个基本的认知。Socket本质上是一种通信协议,它允许不同计算机间的进程相互通信。在本篇中,我们将从一个简单...
Python的socket编程入门知识点总结: 1. socket简介: Socket是网络编程的一种方式...对于初学者而言,这是一篇很好的入门教程,但对于想要构建实际项目的人来说,还需要更多地学习相关的安全知识和高级网络编程技术。
Socket里面的协议解析是Socket通讯程序设计中最复杂的地方,如果你的应用层协议设计或实现不佳,Socket通讯中常见的粘包,分包就难以避免。SuperSocket内置了命令行格式的协议CommandLineProtocol,如果你使用了其它...
本篇文章将深入探讨这些知识点,以便于初学者入门。 首先,客户端和服务器程序在网络编程中的角色至关重要。服务器程序通常先启动,监听特定端口上的连接请求,而客户端程序则负责发起连接。在Linux中,开发者可以...
本篇将深入探讨使用VC++(Visual C++)和Winsock开发网络通信程序的经典入门知识。 一、Winsock基础 1. Winsock初始化:在编写任何网络通信代码之前,必须先加载Winsock库。这通过调用`WSAStartup`函数完成,它会...
《Windows SOCKET编程》这篇文档是针对Windows环境下的网络编程进行详细介绍的资料,旨在帮助开发者提升网络编程技能,尤其是Windows平台的网络编程能力。作者强调,该文档不仅是为了个人的学习总结,也希望对初学者...
【C Socket 指南】是一篇面向C语言程序员的网络编程入门教程,旨在帮助初学者理解和掌握Socket编程。在Unix或类Unix系统中,Socket是实现进程间通信(IPC)的一种方式,它使用文件描述符作为接口,使得程序能够进行...
本篇将带你深入理解Mina的基本概念,以及如何通过一个简单的入门程序来熟悉其工作原理。 首先,我们需要了解Mina的核心组件。Mina的核心包括`IoSession`、`FilterChain`和`ProtocolCodec`等。`IoSession`是Mina中...
- 为了帮助初学者理解Socket的基本工作原理,我们可以从一个最简单的Socket实现开始。 - 例如,创建一个简单的服务器端程序,监听指定端口上的连接请求;同时创建一个客户端程序,向该服务器发送数据并接收响应。 - ...
一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让知识环环相扣,降低了学习的难度 通过大量的比喻、类比、对比和图示等多种讲解方式,学习效果好 对Java语言的每个语法都提供了一个或多个例程讲解 ...
因此,本篇文章将基于标题、描述以及可能涉及的一些核心概念来构建与“VB从入门到实践”相关的知识点。 ### VB从入门到实践 #### 1. Visual Basic (VB) 简介 - **定义**:Visual Basic(简称VB)是一种由微软开发...
本文是该系列第一篇,主要讲述了基于套接字(Socket)进行网络编程的基本概念,其中包括TCP协议、套接字、聊天程序的三种开发模式,以及两个基本操作:侦听端口、连接远程服务端;第二篇讲述了一个简单的范例:从...
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对象的生命周期 ...