日期:2014-05-17  浏览次数:25209 次

【求助】socket变成出现【在其上下文中,该请求的地址无效】
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.IO;

namespace server_1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            IPAddress IPadd = IPAddress.Parse("192.168.2.138");
            TcpListener tcplistener = new TcpListener(IPadd, 1111);
            tcplistener.Start();
            TcpClient tcpclient = tcplistener.AcceptTcpClient();
            NetworkStream ns = tcpclient.GetStream();
            StreamReader sr = new StreamReader(ns);
            String test = sr.ToString();
            textBox1.Text = test;
        }
    }
}


上面是代码,IP地址是公司内部的计算机,可以ping通,在程序的tcplistener.Start();出现错误在其上下文中,该请求的地址无效,换成自己的IP就没有错误了,不知道什么情况,请各位帮忙解决一下啊

------解决方案--------------------
你这是服务端..监听的肯定是本机的 既然你移到别的电脑了 IP就不一样了 所以就报错了



 var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
 socket.Bind(new IPEndPoint(IPAddress.Any, int.Parse(txt_port.Text)));


注意看第二句的代码..


IPAddress.Any

应该对你有用
------解决方案--------------------
192.168.2.138这个IP不是你本机的啊?
你还想从本机监听另外一个机器的端口?我汗。。
TcpListener?只能监听本机的端口