正文

请求解决?“由于目标机器积极拒绝,无法连接。”2007-02-08 09:22:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/Csharpsky/23158.html

分享到:

我是要实现两个计算机通讯,访问过程中产生这样的错误提示:
“由于目标机器积极拒绝,无法连接。”

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.IO;
using System.Collections;

namespace SocketSample
{
    public partial class SocketSample : Form
    {
        private NetworkStream networkStream;
        private StreamReader streamReader;
        private StreamWriter streamWriter;
        ArrayList sb;
        TcpClient myclient ;
        bool flag = false;

        public SocketSample()
        {
            sb = new ArrayList();
            InitializeComponent();
            if (!flag)
                Connect();

            //get a Network stream from the server
            networkStream = myclient.GetStream();
            streamReader = new StreamReader(networkStream);
            streamWriter = new StreamWriter(networkStream);
            ShowMessage();
        }

        protected void Connect()
        {
            //connect to the "localhost" at the give port
            //if you have some other server name then you can use that instead of "localhost"

            try
            {
                sb.Add("Conneting to Server");
                myclient = new TcpClient("192.168.1.223", 1234);
                sb.Add("Conneted,Please enter something in the textbox");
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
                sb.Add(string.Format("Failed to connect to server at {0}:1234", "localhost"));
            }
            flag = true;
        }

        protected void ShowMessage()
        {
            for (int i = 0; i < sb.Count; i++)
            {
                t2.Items.Add((object)sb[i].ToString());
            }
            sb.Clear();
        }

        private void t1_TextChanged(object sender, EventArgs e)
        {
            if (t1.Text == "")
                bts.Enabled = false;
            else
                bts.Enabled = true;

        }

        private void bts_Click(object sender, EventArgs e)
        {
            if (t1.Text == "")
            {
                sb.Add("Please enter something in the textbox.");
                t1.Focus();
                return;
            }
            string s;
            try
            {
                streamWriter.WriteLine(t1.Text);
                Console.WriteLine("Sending Message");
                streamWriter.Flush();
                s = streamReader.ReadLine();
                Console.WriteLine("Reading Message");
                Console.WriteLine(s);
                sb.Add(s);
                t1.Text = "";
                t1.Focus();
                ShowMessage();
            }
            catch
            {
                MessageBox.Show("Error.");
            }   

        }

    }
}
上面的为客户端
下面的为服务器端
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;

namespace Echoserver
{
    class Echoserver
    {
        static void Main(string[] args)
        {
            //TcpListener is listening on the given port
            Int32 port = 1234;

            //IPAddress is connetct ip address
            //IPAddress addr = IPAddress.Parse("127.0.0.1");
            IPAddress ipAddress = Dns.GetHostEntry("localhost").AddressList[0];

            TcpListener tcpListener = new TcpListener(ipAddress, port);
            tcpListener.Start();
            Console.WriteLine("Server Started");
            //Accepts a new connection
            Socket socketForClient = tcpListener.AcceptSocket();
            //StreamWriter and StreamReader Classes for reading and writing the data to and from.
            //The server reads the meassage sent by the Client ,converts it to upper case and sends it back to the client.
            //Lastly close all the streams.
            try
            {
                if (socketForClient.Connected)
                {
                    while (true)
                    {
                        Console.WriteLine("Client connected");
                        NetworkStream networkStream = new NetworkStream(socketForClient);
                        StreamWriter streamWriter = new StreamWriter(networkStream);
                        StreamReader streamReader = new StreamReader(networkStream);
                        string line = streamReader.ReadLine();
                        Console.WriteLine("Read:" + line);
                        line = line.ToUpper() + "!";
                        streamWriter.WriteLine(line);
                        Console.WriteLine("Wrote:" + line);
                        streamWriter.Flush();
                    }
                }
                socketForClient.Close();
                Console.WriteLine("Exiting");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
    }
}

阅读(39910) | 评论(8)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册