- 浏览: 286909 次
- 性别:
- 来自: 广州
-
文章分类
最新评论
-
weituotian:
这篇文章真的很好阿
C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值 -
clshuai:
博主,你好,看了你的这篇文章,让我很敬佩。可谓内容之全,涵盖范 ...
C#操作Excel -
devilhand:
DataGridView刷新数据的问题 -
devilhand:
DataGridView刷新数据的问题 -
devilhand:
DataGridView刷新数据的问题
服务端:
/// <summary> /// 清理所有正在使用的资源。 /// </summary> /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param> protected override void Dispose(bool disposing) { try { s.Close(); th.Abort(); } catch { } if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } /*********************************************************************** * 服务端: * (1)用指定的端口和IP建立EndPoint对象 * (2)建立一个Socket对象 * (3)用Socket对象的Bind()方法绑定IPEndPoint * (4)用Socket对象的Listen()方法开始监听 * (5)接收到客户端的连接,用Socket对象的Accept()方法创建新的Socket对象和请求的客户端进行通信 * (6)通信结束后,关闭Socket对象 ************************************************************************/ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Net; using System.Net.Sockets; using System.Threading; namespace 同步 { public partial class Server : Form { string recvStr = ""; Socket s; string host; Thread th; public Server() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { th = new Thread(new ThreadStart(Receive)); th.Start(); } private string GetIP() { IPHostEntry ipe = Dns.GetHostByName(Dns.GetHostName()); return ipe.AddressList[0].ToString(); } private void Receive() { if ("" == textBox1.Text) { return; } int port = int.Parse(textBox2.Text.Trim()); host = textBox1.Text.Trim(); IPAddress ip = IPAddress.Parse(host);//把IP地址字符串转换为IPAdderess类型 IPEndPoint ipe = new IPEndPoint(ip, port);//用IP和port初始化IPEndPoint类的新实例 //创建一个socket对像,如果用udp协议,则要用SocketType.Dgram类型的套接字 s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); s.Bind(ipe);//为新建的Socket实例绑定IPEndPonit对象 while (true) { try { s.Listen(5);//开始监听 Socket temp = s.Accept();//为新建的连接创建Socket对象 byte[] recvBytes = new byte[1024]; int bytes; bytes = temp.Receive(recvBytes, recvBytes.Length, 0);//从客户端接收信息 recvStr = Encoding.ASCII.GetString(recvBytes, 0, bytes);//把byte[]转换成字符串 string msg = DateTime.Now.ToShortTimeString(); msg += "server get message from" + temp.RemoteEndPoint.ToString(); msg +="Message:"+ recvStr; //textBox3.Text = msg; listBox1.Items.Add(msg); string sendStr = "ok!Client send message successful"; byte[] bs = Encoding.ASCII.GetBytes(sendStr);//把字符串转换成byte[] temp.Send(bs, bs.Length, 0);//返回信息给客户端 temp.Close(); } catch (System.Exception ex) { this.label4.Text =ex.Message .ToString (); } } } private void Server_Load(object sender, EventArgs e) { textBox1.Text = GetIP(); } } }
客户端:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Net; using System.Net.Sockets; namespace Clinet { public partial class Clinet : Form { public Clinet() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Send(); } private void Send() { int port = int.Parse(this.txtPort.Text.Trim()); string host = this.txtIP.Text.Trim(); IPAddress ip = IPAddress.Parse(host);//将Ip地址由字符串转换为IPAddress类型 IPEndPoint ipe = new IPEndPoint(ip, port);//用指定的IP和端口初始化IPEndPoint类的新实例 //建立Socket对象 Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); c.Connect(ipe);//连接服务器 string sendStr = ""; sendStr = textBox3.Text.Trim (); byte[] bs = Encoding.ASCII.GetBytes(sendStr);//把字符串转换为byte类型 c.Send(bs, bs.Length, 0);//向服务器发送信息 string recvStr = ""; byte[] recvBytes = new byte[1024]; int bytes; bytes = c.Receive(recvBytes, recvBytes.Length, 0);//接收服务器返回的信息 recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes); this.label4.Text = "Clinet get message:" + recvStr; c.Close(); } } }
发表评论
-
C#获取本地IP
2012-06-06 14:39 975/// <summary> ... -
只能启动单个程序
2012-05-04 12:51 835bool ret; System. ... -
.Net控件命名规范
2012-04-25 14:45 836<!--------------A----------- ... -
DataGridView绑定数据时,时间格式显示不全的问题
2012-04-25 13:54 1064DataGridView绑定数据时,时间格式显示问题 今天做 ... -
把Dgv的颜色改回默认颜色
2012-04-25 13:35 989dgv.Rows[i].DefaultCellStyle.Ba ... -
Winform 去掉 最大化 最小化 关闭按钮 保留左侧图片
2012-04-23 17:02 1230using System; using System.Col ... -
禁用窗体的关闭按钮
2012-04-23 16:58 910[DllImport("USER32 ... -
c#中用声音提示报警
2012-03-14 09:51 1800using System; using System.Ru ... -
WinForm 查看控制台输出
2012-02-15 10:39 1328/// <summary> ... -
C# 启动外部程序的几种方法
2011-10-17 19:15 7701. 启动外部程序,不等待其退出。2. 启动外部程序,等待其退 ... -
解决VS2005不能调试线程问题
2011-08-12 12:33 2421昨天突然VS2005不能调试线程,网上找了很多方法都不行,后来 ... -
通过域名获取IP的两种方法
2011-07-16 15:09 1885//每次都去Dns服务器上 ... -
执行命名行命令
2011-07-16 14:41 732/// <summary> / ... -
获取指定目录下所有文件
2011-07-01 20:48 1504命名空间 using System.Collections; ... -
C#控制Excel的打印格式
2011-06-22 20:54 3750Excel.Application appExcel=n ... -
C#操作Excel
2011-06-22 14:28 1653using System; using System. ... -
C# 操作Excel的类
2011-06-22 14:20 1383using System; using Micro ... -
DataGridView刷新数据的问题
2011-06-21 11:39 42461、操作:UI线程修改数据后重新绑定dgv,一个后台线程定时刷 ... -
VS2005水晶报表注册码
2011-06-18 13:40 7406707437608 -
按Enter键时,焦点移到下一个控件
2011-06-18 10:06 1263#region 按Enter键时,焦点移 ...
相关推荐
Netty 是一个高性能、异步事件驱动的网络...通过这种方式,我们可以构建一个具备完整功能的网络通信系统,包括同步数据传输、心跳检测、连接控制和登录验证。Netty的灵活性和高性能使得这些功能的实现变得简单而高效。
总的来说,通过这个"C# Socket同步消息传输TcpServer"的实践,开发者不仅可以掌握C#中Socket的基本用法,还能了解到TCP通信的流程,包括连接建立、数据传输和连接关闭等环节,为后续更复杂的网络编程打下坚实的基础...
Socket同步通信是网络编程中的重要概念,主要用于实现不同计算机之间的数据传输。在这个系列教程中,我们将深入探讨Socket通信的基础知识,特别适合初学者逐步学习。本文将围绕标题和描述展开,详细阐述Socket同步...
标题中的"C# Socket 同步通信"指的是使用C#语言编写Socket客户端和服务端,实现数据的同步传输。 首先,我们来了解Socket的基本概念。Socket是操作系统提供的网络编程接口,它允许应用程序通过网络发送和接收数据。...
C#socket 大文件传输 分段传输 C#DEMO
下面,我们将介绍使用C#实现WinForm和Socket同步通信的基本步骤: 1. **创建WinForm界面**:首先,我们需要创建一个WinForm窗口,包含必要的控件,如“发送”按钮和“接收”文本框。可以使用Visual Studio的设计器...
同步套接字(Synchronous Socket)是一种网络编程中的通信机制,主要用于客户端和服务器之间的数据交换。同步套接字的工作方式是阻塞式的,即服务器在等待客户端连接或接收数据时,会暂停当前的执行流程,直到有数据...
### C# Socket 同步与异步机制详解 #### 一、引言 在现代软件开发中,网络通信是不可或缺的一部分。特别是在客户端-服务器架构的应用中,如何高效地进行数据交换变得尤为重要。C# 提供了多种方式进行网络编程,...
本文将深入探讨C#中的Socket同步通讯与异步通讯,以及如何构建客户端和服务端程序。 首先,让我们了解什么是Socket。Socket是网络通信的基本单元,它允许应用程序通过网络发送和接收数据。在C#中,Socket类位于...
在这个场景中,"HPSocket 同步发送 异步 sqlite模块源码"的标题暗示了我们将会讨论如何利用HPSocket进行同步数据发送,并结合SQLite数据库进行异步操作。 首先,让我们深入理解HPSocket。HPSocket是一个跨平台的...
Socket编程在C#中是网络通信的基础,它提供了一种基于TCP/IP协议的低级接口,使得应用程序可以方便地进行网络数据传输。本篇将详细探讨C#中的Socket同步和异步通信,以及如何在Winform环境下实现这些功能。 首先,...
在C#编程中,Socket是网络通信...通过理解和实践这些C# Socket同步和异步通信示例,开发者可以更好地掌握网络编程技术,为构建高效稳定的网络应用打下坚实基础。在实际开发中,应根据项目需求灵活选择合适的通信方式。
3. 数据传输:通过 Socket 连接,双方可以进行双向数据传输。服务器和客户端可以发送和接收消息,实现在线通信。 4. 错误处理:设计适当的错误处理机制,例如连接中断、数据传输错误等。 5. 关闭连接:完成数据交换...
HPSocket同步版本的出现,是为了满足开发者在多线程环境下的同步控制需求,确保数据传输的有序性和一致性。 HPSocket是一个高性能、跨平台的TCP/IP通讯组件,它提供了丰富的接口,可以方便地进行Socket编程,支持...
本教程将深入探讨C#中的Socket同步与异步通信。 **一、Socket基础** Socket是网络通信的接口,它提供了进程间通过网络进行通信的能力。在C#中,`System.Net.Sockets.Socket`类是我们操作Socket的主要工具。Socket...
本篇将深入探讨C#中的Socket同步和异步编程实例,帮助开发者理解和掌握这两种模式的使用。 **1. Socket基础知识** Socket是网络编程中的一个抽象概念,它是应用程序与网络协议栈之间的接口,提供了发送和接收数据的...
在实现这些功能时,注意要正确处理网络异常,如连接断开、数据传输错误等,确保程序的健壮性。同时,为了优化性能,可以考虑使用缓冲区管理数据的发送和接收,避免频繁的小规模操作。 总结来说,Socket异步和同步...
总结,C++ MFC下的Socket编程文件传输涉及创建Socket、监听/连接、发送/接收数据、错误处理等多个步骤。理解这些概念并能熟练应用,是开发高效可靠的文件传输系统的关键。在实际项目中,开发者应根据需求选择合适的...
实现断点续传通常需要客户端和服务器端保存文件传输状态,如已传输的字节数,并通过特定协议进行同步。 压缩包中的其他文件可能包括: - **NET完成端口测试结果.xlsx**:可能包含了使用完成端口技术前后的性能对比...
在C#编程中,Socket是网络通信的基本组件,它提供了进程间、网络间的数据传输能力。本示例主要探讨如何使用C#的Socket类进行文件的传输,包括文件名和文件内容的同步发送与接收。这里我们将详细讲解实现这一功能的...