资源简介
本代码基于c#语言实现tcp双工通信,分为tcp客户端和tcp服务器端两部分,内含可执行文件。
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.IO;
namespace tcp客户端
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
TextBox.CheckForIllegalCrossThreadCalls = false;
}
Thread threadClient = null; // 创建用于接收服务端消息的 线程;
Socket sockClient = null;
private void btnConnect_Click(object sender EventArgs e)
{
IPAddress ip = IPAddress.Parse(txtIp.Text.Trim());
IPEndPoint endPoint = new IPEndPoint(ip int.Parse(txtPort.Text.Trim()));
sockClient = new Socket(AddressFamily.InterNetwork SocketType.Stream ProtocolType.Tcp);
try
{
ShowMsg(“与服务器连接中……“);
sockClient.Connect(endPoint);
}
catch (SocketException se)
{
MessageBox.Show(se.Message);
return;
//this.Close();
}
ShowMsg(“与服务器连接成功!!!“);
threadClient = new Thread(RecMsg);
threadClient.IsBackground = true;
threadClient.Start();
}
public delegate void DeleUpdateTextbox(string dataRe);
void RecMsg()
{
DeleUpdateTextbox deleupdatetextbox = new DeleUpdateTextbox(UpdateTextbox);
byte[] arrMsgRec = new byte[1024 * 1024 * 512];
while (true)
{
// 定义一个2M的缓存区;
// 将接受到的数据存入到输入 arrMsgRec中;
int length = -1;
try
{
length = sockClient.Receive(arrMsgRec); // 接收数据,并返回数据的长度;
arrMsgRec[length] = 0;
}
catch (SocketException se)
{
ShowMsg(“异常;“ + se.Message);
return;
}
catch (Exception e)
{
ShowMsg(“异常:“ + e.Message);
return;
}
if (arrMsgRec[0] == 0x30) // 表示接收到的是消息数据;
{
string strMsg; //System.Text.Encoding.Default.GetString(arrMsgRec 1 length - 1);// 将接受到的字节数据转化成字符串;
//ShowMsg(strMsg);
strMsg = System.Text.Encoding.UTF8.GetString(arrMsgRec 1 length - 1);
strMsg = “他说:\r\n“ + strMsg;
ShowMsg(strMsg);
}
if (arrMsgRec[0] == 0x31) // 表示接收到的是文件数据;
{
try
{
SaveFileDialog sfd = new SaveFileDialog();
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-04-20 20:24 tcp通信\
目录 0 2018-05-01 20:31 tcp通信\tcp服务器\
文件 11206 2018-04-27 22:09 tcp通信\tcp服务器\Form1.cs
文件 8731 2018-04-27 22:09 tcp通信\tcp服务器\Form1.Designer.cs
文件 5817 2018-04-27 22:09 tcp通信\tcp服务器\Form1.resx
文件 484 2018-04-17 22:27 tcp通信\tcp服务器\Program.cs
文件 14336 2018-04-27 22:09 tcp通信\tcp服务器\tcp.exe
文件 851 2018-04-20 20:22 tcp通信\tcp服务器\tcp.sln
文件 24576 2018-04-27 22:09 tcp通信\tcp服务器\tcp.suo
目录 0 2018-05-01 20:31 tcp通信\tcp客户端\
文件 7897 2018-04-20 20:21 tcp通信\tcp客户端\Form1.cs
文件 8829 2018-04-20 20:21 tcp通信\tcp客户端\Form1.Designer.cs
文件 5817 2018-04-20 20:21 tcp通信\tcp客户端\Form1.resx
文件 493 2018-04-17 22:40 tcp通信\tcp客户端\Program.cs
文件 13824 2018-04-27 22:04 tcp通信\tcp客户端\tcp客户端.exe
文件 878 2018-04-20 20:22 tcp通信\tcp客户端\tcp客户端.sln
文件 24576 2018-04-27 22:09 tcp通信\tcp客户端\tcp客户端.suo
- 上一篇:快速设计一个简单的WPF串口上位机
- 下一篇:大地测量中国地质大学七参数求解
相关资源
- 基于C#的朴素贝叶斯算法
- basler 相机c# 设置参数,采集图片转换
- 贝叶斯网络
- C#读写Excel文件的简单操作
- C# 编写一个简单的验证用户和密码的
- c#API大全2015
- NET and C#毕业论文参考文献翻译+原文
- C#数据库表转实体类
- Astrolog可用于C#的Dll
- C# -大地测量学-高斯投影正反算公式程
- C#蜘蛛爬虫源代码多线程
- C#高校教材管理系统
- C#读取BIN文件内容
- C#操作TIF文件实现显示、缩放、移动
- C#与DVP PLC通信
- C# Winform 中实现的翻译功能
- WinIO v3.0 资源文件以及VB6和C#
- C#封装的JqGrid插件
- C#实现4种经典迷宫生成算法和迷宫寻
- C#连接数据库已封装好
- 使用c#.基于web在线选课系统
- C#压力测试程序,测试完毕后能够自动
- Arcengine+C# 做空间插值的
- 计算机图形学作业C#,图片鼠标,键盘
- c#窗体中的DataGridView及TreeView的应用
- C#编写的二叉排序树
- C#使用Socket实现服务器与多个客户端通
- 用C#做一个画图软件
- C#可视化打印模板设计工具含源码
- C#网络应用编程第3版习题答案
评论
共有 条评论