用c# 写的一个tcp client 发一个指令再读硬件发回来的数据,无法读取

问题描述

用c# 写的一个tcp client 发一个指令再读硬件发回来的数据,无法读取

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Threading;

namespace tongbu
{
public partial class Form1 : Form
{
string sendString = null;//要发送的字符串
byte[] sendData = null;//要发送的字节数组
TcpClient client = new TcpClient();//实例化TcpClient
NetworkStream stream = null;//网络流

    IPAddress remoteIP = IPAddress.Parse("10.104.10.10");//远程主机IP
    int remotePort = 10940;//远程主机端口

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            client.Connect(remoteIP, remotePort);//连接远程主机
        }
        catch (System.Exception ex)
        {
            Console.WriteLine("连接超时,服务器没有响应!");//连接失败
            Console.ReadKey();
            return;
        }
    }

    private void button2_Click(object sender, EventArgs e)
    {
        sendString = textBox1.Text.ToString()+"r"; //获取要发送的字符串
        sendData = Encoding.ASCII.GetBytes(sendString);//获取要发送的字节数组
        stream = client.GetStream();//获取网络流
        stream.Write(sendData, 0, sendData.Length);//将数据写入网络流
        Thread.Sleep(10);
        textBox1.Clear();

        Byte[] data3 = new Byte[client.ReceiveBufferSize];
        Int32 bytes = stream.Read(data3, 0, data3.Length);
        string responseData = System.Text.Encoding.ASCII.GetString(data3, 0, bytes);
        listBox1.Text = responseData;

        //string sss = "";
        //for (int i = 0; i < data3.Length; i++)
        //{
        //    sss += data3[i].ToString();
        //}
        //listBox1.Text = sss;

        //Thread.Sleep(10); //这个地方加上就能获取到数据,如果去掉大部分时候都不能获取到,只有少数时候能取得
        //byte[] bytes = new byte[client.ReceiveBufferSize];
        //stream.Read(bytes, 0, (int)client.ReceiveBufferSize);
        //string returndata = Encoding.ASCII.GetString(bytes);
        //returndata = returndata.Substring(0, returndata.IndexOf(''));
        //listBox1.Text = returndata;
        stream.Close();//关闭网络流
        client.Close();//关闭客户端

    }

}

}

时间: 2024-10-26 00:40:42

用c# 写的一个tcp client 发一个指令再读硬件发回来的数据,无法读取的相关文章

利用MFC写一个Tcp程序,基于事件选择机制建立一个回射服务器(直接把收到的客户端消息发回给客户端)

问题描述 利用MFC写一个Tcp程序,基于事件选择机制建立一个回射服务器(直接把收到的客户端消息发回给客户端) 刚开始学习window套接字编程,很多东西还不大熟,想请高手帮忙写出这个程序作为我学习相关理论的模板 解决方案 http://pan.baidu.com/s/1hs2hKEg分享给你这个视频教程 跟着视频一步一步做可以做一个局域网聊天室 同时学习mfc编程与socket编程

网络编程-用MFC写的基于TCP的数据发收问题

问题描述 用MFC写的基于TCP的数据发收问题 服务器接收时,将数据源源不断的读取并显示,如果数据量很大的话,显示到edit文本框上会出现主界面卡住的状态,直到数据全部接收完成,主界面才会恢复顺畅.我现在在fd_read后面创建了线程,不过那个是个循环过程,意味进程不断的在创建启动,但是我建立的线程并不能解决界面卡的问题,求更有效的办法,急急... 解决方案 MFC写的一个界面遇到的问题 解决方案二: 通过线程发送消息给主界面更新,然后就是控制更新频率,UI没必要更行那么频繁

Multi Libvent TCP Server:一个高性能的TCP服务器

MrioTCP,超级马里奥,顾名思义,他不仅高效,而且超级简易和好玩.同时他可以是一个很简洁的Linux C 开发学习工程.毫不夸张的说,如果全部掌握这一个工程,你会成为一个Linux C的牛人:当然,你也可以通过源码包的mario.c(maritcp服务器示例程序)来学习,可以很快入门上手进行Linux C开发. 经过两个多月的测试(编写c++客户端测试及调优系统参数),测试结果得到单机最大带宽吞吐1000M,测试最高TCP长连接100万,每秒处理连接数达4万,此时系统压力load值很低.总之

TCP Server《——》TCP Client

#include <stdio.h> #include <winsock2.h> #pragma comment(lib, "WS2_32") // 链接到WS2_32.lib class CInitSock { public: CInitSock(BYTE minorVer = 2, BYTE majorVer = 2) { // 初始化WS2_32.dll WSADATA wsaData; WORD sockVersion = MAKEWORD(minorV

mfc c++-新人求教,我用mfc做了一个tcp fin的端口扫描器,死后得不出结果,求大神帮忙找出问题

问题描述 新人求教,我用mfc做了一个tcp fin的端口扫描器,死后得不出结果,求大神帮忙找出问题 cpp文件 // scanDlg.cpp : implementation file// #include ""stdafx.h""#include ""scan.h""#include ""scanDlg.h""#include ""afxdialogex.h&qu

在线等,一个TCP服务同步与异步的问题!

问题描述 publiceventTCPServer.LeafEvent.DataReceivedHandlerDataReceived;TCPServer.LeafTCPClientclient=null;privatevoidServerOpen(){if((client!=null)&&(client.NetWork.Connected)){client.DisConnect();agenserver.StockClose();}else{client=newLeafTCPClient

如何做一个 1人 发一个通知,打开网页的人都可以收到通知

问题描述 要求做一个传递紧急事情的功能,一个人在网页上发通知,所有打开网页的人都能收到通知,通知最好是那种弹窗警告之类的,有没有相关的教程推荐一下,非常感谢!!! 解决方案 解决方案二:现在可以使用websocket,老方式是靠页面js轮询解决方案三:这个难道不是SignalR做的事吗?解决方案四:参考这个SignalR:解决方案五:signalR网上搜一下就知道了.解决方案六:3楼的好牛呀,就学你的样式解决方案七:牛b,顶一个解决方案八:引用3楼insus的回复: 参考这个SignalR: 不

javaerb-java web写了过滤器,作用显示一个servlet执行的时间,不过显示在哪里呢?

问题描述 java web写了过滤器,作用显示一个servlet执行的时间,不过显示在哪里呢? package exa; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class TimerFilter implements Filter{ private FilterConfig config = null; public void init(FilterConfig config)

数据-急!请教这个sql语句怎么写:两个条件查询,其中一个满足,另一个条件就不要加了

问题描述 急!请教这个sql语句怎么写:两个条件查询,其中一个满足,另一个条件就不要加了 条件2始终存在,条件1不一定始终有.条件1.条件2的数据可能同时存在,但是 当有条件1的数据存在的时候,显示条件1的数据: 如果没有,则显示条件2的数据的数据. 解决方案 select * from table where (条件1 and not exist (select * from table where 条件2)) or (条件2 and not exist (select * from tabl