動態聯接庫問題(高手不要錯過了)

来源:互联网 发布:网络禁书小说40本名单 编辑:程序博客网 时间:2024/06/04 17:56

///客戶端代碼

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.IO;
using System.Threading;
using System.Runtime.InteropServices;

namespace DTClientDemo 
{
    public partial class Form1 : Form
    {

        TcpClient tcpc = null;
        NetworkStream ns = null;
        Thread td = null;

        StreamReader sr = null;
        StreamWriter sw = null;

        //C#实现在局域网内两台电脑间的通讯
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            tcpc = new TcpClient("10.2.6.32", 3500); //端口必須和服務器匹配,實現聯接數據庫的操作,服務器此時必須開啟 
   
            ns = tcpc.GetStream();      //獲取網絡流對象
            td = new Thread(new ThreadStart(Read));

            td.Start();
            label3.Text = "客戶端起動!";
        }
        private void Read()
        {
            while (true)  //循環接收服務器發來的數據
            {
                sr = new StreamReader(ns);
                textBox2.Text = sr.ReadLine();  // 服務器沒有數據發來的時候處輿中止狀態
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            sw = new StreamWriter(ns);  //根據網絡流對象創見輸出
            sw.WriteLine(textBox1.Text);  //確定輸出數據
            sw.Flush();  //實現數據傳送
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            try
            {
                tcpc.Close();  //釋放資源
                ns.Close();
                td.Abort();
                sr.Close();
                sw.Close();
            }
            catch { }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
          
        }
    }
}

 

//服務端代碼

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.IO;
using System.Threading;
using System.Runtime.InteropServices;

namespace DTServerDemo
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        TcpListener tcpl = null;
        Socket sck = null;
        NetworkStream ns = null;
        Thread td = null;

        StreamReader sr = null;
        StreamWriter sw = null;

        Int32 port = 3500;
        IPAddress localAddr = IPAddress.Parse("10.2.6.32");

        private void Form2_Load(object sender, EventArgs e)
        {
            tcpl = new TcpListener(localAddr, port);

            td = new Thread(new ThreadStart(Listen));
        }
        private void Listen()
        {
            tcpl.Start();
            sck = tcpl.AcceptSocket();
            ns = new NetworkStream(sck);

            while (true) //循環接收服務器發來的數據
            {
                sr = new StreamReader(ns);
                textBox2.Text = sr.ReadLine(); // 服務器沒有數據發來的時候處輿中止狀態    
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            td.Start();
            label3.Text = "服務器起動!";
        }

        private void button2_Click(object sender, EventArgs e)
        {
            sw = new StreamWriter(ns);  //根據網絡流對象創見輸出
            sw.WriteLine(textBox1.Text); //確定輸出數據
            sw.Flush();   //實現數據傳送
        }

        private void Form2_FormClosing(object sender, FormClosingEventArgs e)
        {
            try
            {
                tcpl.Stop(); //釋放資源
                sck.Close();
                ns.Close();
                td.Abort();

                sw.Close();
                sr.Close();
            }
            catch { }
        }
    }
}

這些代碼可以互相在局域網裡面傳送信息,但是我要是聯接到一個數據采集器(DT4000)上面就不可以了,DT4000:(IP:10.2.6.236 Port:4660),我ip 和 port也改成為DT4000的ip和port了。要使用動態聯接庫,如果哪位大俠可以解決,我把廠家具體VB寫的動態聯接庫和介紹發給他。我要改成使用C#寫. c#高手請進. 把你Emain流給我.

原创粉丝点击