lcn的Socket对外服务IP是内网ip,socket连接失败,怎么解决!!!!! 10C

各位大神,大牛们,急求!!!!!!!!!!
lcn的Socket对外服务IP是内网ip,socket连接失败,怎么解决!!!!!

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
在内网怎么知道对外的ip地址
在局域网内的机器可以随意访问internet,是通过网关来代理的,网关对内是192.168.*.*,对外的ip是拨号得到的,在内网敲ipconfig只能看到本机ip和网关ip,都是192.168.*.*,用什么命令可以在本机知道网关对外部的ip呢?
Socket的IP怎么填啊?
如题(PC做服务器端,模拟机做客户端)rn要实现服务器端和客户端,一定要用真机吗?有模拟机可以不?rn下面是代码rn服务器端:rn[code=Java]rnimport java.io.FileInputStream;rnimport java.io.IOException;rnimport java.io.InputStream;rnimport java.io.OutputStream;rnimport java.net.ServerSocket;rnimport java.net.Socket;rnrnpublic class MyServer rnrn /**rn * @param argsrn */rn public static void main(String[] args) rn // TODO Auto-generated method stubrn try rn ServerSocket serverSocket = new ServerSocket(8888);rn Socket socket = serverSocket.accept();rn InputStream inputStream = new FileInputStream("e://a.txt");rn OutputStream outputStream = socket.getOutputStream();rn int temp = 0;rn byte buffer[] = new byte[1024 * 4];rn while ((temp = inputStream.read(buffer)) != -1) rn outputStream.write(buffer, 0, temp);rn rn serverSocket.close();rn socket.close();rn inputStream.close();rn outputStream.close();rn catch (Exception e) rn // TODO Auto-generated catch blockrn e.printStackTrace();rn rn System.out.println("服务器端关闭!");rn rnrn[/code]rnrnrn客户端:rn[code=Java]rnpackage myactivity.MyClient;rnrnimport java.io.IOException;rnimport java.io.InputStream;rnimport java.net.Socket;rnimport java.net.UnknownHostException;rnrnimport android.app.Activity;rnimport android.os.Bundle;rnimport android.view.View;rnimport android.view.View.OnClickListener;rnimport android.widget.Button;rnrnpublic class MyClientActivity extends Activity rn /** Called when the activity is first created. */rn private Button btn=null;rn @Overridern public void onCreate(Bundle savedInstanceState) rn super.onCreate(savedInstanceState);rn setContentView(R.layout.main);rn btn=(Button)findViewById(R.id.btn);rn btn.setOnClickListener(new BtnListener());rn rnrn class BtnListener implements OnClickListenerrn rnrn public void onClick(View v) rn // TODO Auto-generated method stubrn new ClientThread().start();rn rn rn rn class ClientThread extends Thread rn public void run() rn Socket socket=null;rn try rn socket = new Socket("192.168.1.100", 8888);rn InputStream inputStream=socket.getInputStream();rn byte buffer[]=new byte[4*1024];rn int temp=0;rn while((temp=inputStream.read(buffer))!=-1)rn rn System.out.println(new String(buffer,0,temp));rn rn catch (Exception e) rn // TODO Auto-generated catch blockrn e.printStackTrace();rn rn finallyrn rn try rn socket.close();rn catch (IOException e) rn // TODO Auto-generated catch blockrn e.printStackTrace();rn rn rn rn rnrn[/code]rn我在模拟机上点按钮,socket.close();就报空指向异常,求大神指教
socket和tcp/ip怎么相互作用?
总是只见socket的面貌,不见全身。rn请各位大侠讲解一下一个socket从创建,连接,到关闭的变化,以及socket和tcp/ip的相互作用。rn被创建而未与对端连接的一个socket是什么样的,与对端建立了连接的socket是什么样的?
Socket连接失败
我的一个程序用到了Socket,[color=#FF0000]但有时候运行一段时间之后出现 Socket连接失败[/color],这个时候重启下机器又正常了,再运行一段时间又出现问题,这是什么原因?rnrn[code=csharp] Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);rn IPAddress ipaddress = IPAddress.Parse(IPAddr);rn IPEndPoint ipendpoint = new IPEndPoint(ipaddress, 9000);rn rn client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, TimeOutTime);rn client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout,TimeOutTime);rn client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.DontLinger, 0);rnrn tryrn rn client.Connect(ipendpoint);//这里出错rn rn catch (Exception ex)rn rn[/code]
Java TCP IP Socket
TCP IP Socket 免费 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!
C++ TCP/IP socket
C++ TCP/IP socket通信,客户端接收到数据后解析为16进制或者10进制等(不可解析为ascii字符,因为接收到的数据很多没有对应的ascii字符),现在需要客户端发送接收到的同样的数据,使服务器端接收到得数据与其在第一次发送时解析出来的16进制数据相等。rn例:服务器端发送:char ch[]=0x11,0x12,0x13,0x22,0x23,0x24rn客户端若将数据解析为16进制字符串必为string str=“111213222324”,然而客户端要如何解析存储收到的数据,然后再如何发送解析后存储的数据给服务器端,才能够使得服务器端在接收到的数据解析为16进制数据字符串后也为string str=“111213222324”这种形式呢? rn客户端解析完成之后,要如何使其连接已固定字符串,例如:char ch[]=0x45,0x46,0x47,然后再发送给服务器端,而服务器端在解析为16进制数据字符串后为string str=“111213222324454647”呢?
TCP/IP(socket)问题
我写了 一个TCP/IP(socket)户端程序,请指点一下 我应该在什么事件里写接收函数recv()函数啊?就是只要服务端一发出信息我这面就可以收到啊,那边什么时候发 我这边就可以随时的接收到啊?我以前没做过 不知道怎么写 请指点一下 谢谢!提供点例程或参考资料室最好的了 谢谢!
Socket IP问题
我做了一个socket程序,通过路由器进行连接与数据传输都没有问题,但是如果我服务器如果通过无线上网卡或者asdl来上网,不通过路由器,服务器端我直接获取当前ip,看着也像外网ip,客户端通过这个ip去连接的时候,连不上,但是通过路由器我做了一个端口映射,连接就没问题,请教连接不上是什么问题导致····
TCP/IP 通信协议之socket
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。 建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。 下面写了一个简单的...
tcp\ip socket C语言编程
tcp\ip socket C语言编程
socket tcp/ip 多线程通信
c#开发的 资源提供了多线程通信机制。适合出学者使用。客户端发布信息。服务器端可接收。而且使用了一定的命令。代码非常全
socket与TCP/IP
简单的socket操作类,服务于客户端都可以定义,简单的TCP/ip的实现
socket复习资料tcp ip
TCP-IP程序设计复习稿 3年考试试卷tcp简答题集
socket 指向外网IP
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.Sockets; u...
socket获取客户端IP
如何获得客户端IP地址?
Socket 通信连接IP问题
我做了一个QQ聊天程序 我现在有个服务器端 我服务器的防火墙是关闭的 .rn rn IP是 218.61.146.***rn rn 端口什么的都没问题 我如果在局域网内 能连接上服务器端rnrn 我如果不在局域网 为什么连接不上 求高人指点 rnrn
Tcp/ip 的 socket 问题!?
socket中的,服务器端,是怎样实现多个端口的?rnrn是在 listen的时候总是1024,而如果有连接的话,程序就新开辟一个端口连接么?而这个端口用到的内存等资源,是在连接的时候才开辟,还是在socket启动的时候就分配好了的?rnrn最好的办法是连接的时候才开辟,可想不通它用的是什么方法?! :(rnrn刚接触这些东西,问题很弱智,还请多多帮助!rn
socket设置IP的问题
将socket封装到dll里,tcp协议的rn服务端这样一个函数、rnCreateTcpServer( UINT port, char* IPAddress, ProcessRecvData* callback)rn有IP这一个参数,调用dll时总会提示应用程序错误rn但是去掉IP这个参数CreateTcpServer( UINT port, ProcessRecvData* callback)rn然后这样addrlocal.sin_addr.S_un.S_addr = INADDR_ANYrn就会运行成功
TCP/IP SOCKET 网络编程
TCP/IP SOCKET 网络编程 多模式I/O网络开发
TCP/IP和SOCKET基本原理
TCP/IP的基础知识,和SOCKET编程的基本原理
真机Socket,Ip问题
PC作为服务器,代码如下:rnimport java.io.BufferedReader; rnimport java.io.BufferedWriter; rnimport java.io.File; rnimport java.io.FileOutputStream; rnimport java.io.InputStreamReader; rnimport java.io.OutputStreamWriter; rnimport java.io.PrintWriter; rnimport java.net.ServerSocket; rnimport java.net.Socket; rn rn/** rn * 测试Android客户端与PC服务器通过socket进行交互 rn * 服务器端:接收客户端的信息并回送给客户 rn * @author Ameyume rn * rn */ rnpublic class Server implements Runnable rn// public static final String SERVERIP = "192.168.1.97"; rn public static final int SERVERPORT = 12345; rn rn public void run() rn try rn System.out.println("S: Connecting..."); rn rn ServerSocket serverSocket = new ServerSocket(SERVERPORT); rn while (true) rn // 等待接受客户端请求 rn Socket client = serverSocket.accept(); rn rn System.out.println("S: Receiving..."); rn rn try rn // 接受客户端信息 rn BufferedReader in = new BufferedReader( rn new InputStreamReader(client.getInputStream())); rn rn // 发送给客户端的消息 rn PrintWriter out = new PrintWriter(new BufferedWriter( rn new OutputStreamWriter(client.getOutputStream())),true); rn rn System.out.println("S: 111111"); rn String str = in.readLine(); // 读取客户端的信息 rn System.out.println("S: 222222"); rn if (str != null ) rn // 设置返回信息,把从客户端接收的信息再返回给客户端 rn out.println("You sent to server message is:" + str); rn out.flush(); rn rn // 把客户端发送的信息保存到文件中 rn File file = new File ("C://android.txt"); rn FileOutputStream fops = new FileOutputStream(file); rn byte [] b = str.getBytes(); rn for ( int i = 0 ; i < b.length; i++ ) rn rn fops.write(b[i]); rn rn System.out.println("S: Received: '" + str + "'"); rn else rn System.out.println("Not receiver anything from client!"); rn rn catch (Exception e) rn System.out.println("S: Error 1"); rn e.printStackTrace(); rn finally rn client.close(); rn System.out.println("S: Done."); rn rn rn catch (Exception e) rn System.out.println("S: Error 2"); rn e.printStackTrace(); rn rn rn rn public static void main(String [] args ) rn Thread desktopServerThread = new Thread(new Server()); rn desktopServerThread.start(); rn rn rn rn手机作为客户端,代码如下:rnpackage com.example.firstclient;rnrnimport java.io.BufferedReader; rnimport java.io.BufferedWriter; rnimport java.io.InputStreamReader; rnimport java.io.OutputStreamWriter; rnimport java.io.PrintWriter; rnimport java.net.InetAddress; rnimport java.net.Socket; rnimport java.net.UnknownHostException; rn rnimport android.app.Activity; rnimport android.os.Bundle; rnimport android.util.Log; rnimport android.view.View; rnimport android.view.View.OnClickListener; rnimport android.widget.Button; rnimport android.widget.EditText; rnimport android.widget.TextView; rn rn/** rn * 测试Android客户端与PC服务器通过socket进行交互 rn * 客户端:把用户输入的信息发送给服务器 rn * @author Ameyume rn * rn */ rnpublic class MainActivity extends Activity rn private static final String TAG = "Socket_Android"; rn rn private EditText mEditText = null; rn private TextView tx1 = null; rn private Button mButton = null; rn rn @Override rn public void onCreate(Bundle savedInstanceState) rn super.onCreate(savedInstanceState); rn setContentView(R.layout.activity_main); rn rn mButton = (Button)findViewById(R.id.button1); rn mEditText = (EditText)findViewById(R.id.editText1); rn tx1 = (TextView)findViewById(R.id.textView2); rn rn mButton.setOnClickListener(new OnClickListener() rn rn @Override rn public void onClick(View v) rn // TODO Auto-generated method stub rn setTitle("测试Socket连接"); rn Socket socket = null; rn rn try rn /* 指定Server的IP地址,此地址为局域网地址,如果是使用WIFI上网,则为PC机的WIFI IP地址 rn * 在ipconfig查看到的IP地址如下: rn * Ethernet adapter 无线网络连接: rn * Connection-specific DNS Suffix . : IP Address. . . . . . . . . . . . : 192.168.1.100 rn */ rn InetAddress serverAddr = InetAddress.getByName("192.168.1.97");// TCPServer.SERVERIP rn Log.d("TCP", "C: Connecting..."); rn rn // 应用Server的IP和端口建立Socket对象 rn socket = new Socket(serverAddr, 12345); rn String message = "---Test_Socket_Android---"; rn rn Log.d("TCP", "C: Sending: '" + message + "'"); rn rn // 将信息通过这个对象来发送给Server rn PrintWriter out = new PrintWriter(new BufferedWriter( rn new OutputStreamWriter(socket.getOutputStream())), rn true); rn rn // 把用户输入的内容发送给server rn String toServer = mEditText.getText().toString(); rn Log.d(TAG, "To server:'" + toServer + "'"); rn out.println(toServer); rn out.flush(); rn rn rn // 接收服务器信息 rn BufferedReader in = new BufferedReader( rn new InputStreamReader(socket.getInputStream())); rn // 得到服务器信息 rn String msg = in.readLine(); rn Log.d(TAG, "From server:'" + msg + "'"); rn // 在页面上进行显示 rn tx1.setText(msg); rn catch(UnknownHostException e) rn Log.e(TAG, "10.0.2.2 is unkown server!"); rn catch(Exception e) rn e.printStackTrace(); rn finally rn try rn socket.close(); rn catch(Exception e) rn e.printStackTrace(); rn rn rn rn rn ); rn rn rn服务端监听在192.168.1.97的12345端口,192.168.1.97是我本地IP,由dos->ipconfig得到的rn先开启服务端,再运行客户端,报错如下:rn[img=https://img-bbs.csdn.net/upload/201410/18/1413621984_694548.png][/img]rn我查到的是说IP或者端口问题,可不知怎么改?
socket 的ip限制问题
比如我建立一个服务器程序,windows c的,现在我想让我的服务器只允许某些ip连接进来,其它ip不管它,请问有没有比较好的办法?想到的一个办法是accept后判断ip,不符合的ip就close掉,但是这样对方还是会connect成功。感觉如果在accept前断掉最好,就是让对方不会connect成功,有没有这样的办法呢?
Socket获取IP的问题
启用Socket的一个端口监听,当接收到请求后,如何知道发送请求的计算机的IP地址?谢谢
TCP/IP,socket总结
对TCP/IP和socket相关的知识和原因进行了一个简单的总结。
Java socket tcp/ip
Java socket tcp/ip 编程代码
tcp/ip/socket 网络教程
tcp/ip/socket 网络教程
socket端口及IP设置
我编写了一个客户端程序,用socket与服务器连接。请问下服务器的端口和IP改变后,我的客户端能不能不在源程序中改端口与IP。请问要用到配置文件啥的吗?我不太懂,请指点。。。谢谢
socket封装与TCP/IP
如果说socket封装了TCP/IP协议,那么编程时为什么还要分出各种协议呢?直接用socket不就行了吗.我买了一本vc网络编程的书,书里一个章节介绍一个协议,但是我看到每章介绍完协议后就用socket来编程.那么socket与这些各种各样的协议有什么关系呢?socket是不是封装了各种协议呢?不同的协议里用到的socket是不是不同呢?
Socket ip地址问题
[code=C#]rnusing System;rnusing System.Collections.Generic;rnusing System.Text;rnusing System.Net;rnusing System.Net.Sockets;rnnamespace serverrnrn class Programrn rn static void Main(string[] args)rn rn int port = 2000;rn string host = "127.0.0.1";rnrn /**////创建终结点(EndPoint)rn IPAddress ip = IPAddress.Parse(host);//把ip地址字符串转换为IPAddress类型的实例rn IPEndPoint ipe = new IPEndPoint(ip, port);//用指定的端口和ip初始化IPEndPoint类的新实例rnrn /**////创建socket并开始监听rn Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个socket对像,如果用udp协议,则要用SocketType.Dgram类型的套接字rn s.Bind(ipe);//绑定EndPoint对像(2000端口和ip地址)rn s.Listen(0);//开始监听rn Console.WriteLine("等待客户端连接");rnrn /**////接受到client连接,为此连接建立新的socket,并接受信息rn Socket temp = s.Accept();//为新建连接创建新的socketrn Console.WriteLine("建立连接");rn string recvStr = "";rn byte[] recvBytes = new byte[1024];rn int bytes;rn bytes = temp.Receive(recvBytes, recvBytes.Length, 0);//从客户端接受信息rn recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);rnrn /**////给client端返回信息rn Console.WriteLine("server get message:0", recvStr);//把客户端传来的信息显示出来rn string sendStr = "ok!Client send message successful!";rn byte[] bs = Encoding.ASCII.GetBytes(sendStr);rn temp.Send(bs, bs.Length, 0);//返回信息给客户端rn temp.Close();rn s.Close();rn Console.ReadLine();rn rn rn rnrnrn[/code]rnrn这条Socket代码不能用外网ip地址(在网上查找本机ip地址,或查网址ip地址),rn[color=#FF0000]错误提示:在其上下文中,该请求的地址无效[/color]rn但能用127.0.0.1,我在路由设置的:192.168.1.2rn那个前辈知道那里的问题,谢谢
安卓开发之socket的IP地址
1、IP地址获取      socket.getInetAddress():本客户端的IP地址              返回:/192.168.1.108      socket.getLocalAddress():本服务器的IP地址              返回:/192.168.1.111     socket.getLocalSocketAddress():本服务器的IP地址+...
关于socket的绑定IP
这个,,socket的绑定ip啊,感觉有点绕,每次无论是看注释还是看文档,说的都是类似于socket监听的本地ip地址的话,但是如果在服务器使用其绑定了127.0.0.1这个地址的话,外网就连不进来,我查阅了很多资料,最后加上自己的理解,觉得大概是这个意思。 当你用socket绑定127.0.0.1的时候,也就是说只接受目标为127.0.0.1的连接请求,这个内部用的地址还不对外开放,所以外网连...
关于Socket的IP问题!!!!!!!!!!!!!!!!!!!!
现在的实际情况是:rnrn负责监听的服务器和一个客户端在同一个电脑中实现,另外一个客户端在其他电脑中。就是说有两个客户端,而服务器端在其中的一个客户端一边。rn当两个客户端中的一个向服务器端发送消息,服务器怎么样能知道谁给服务器端发送的信息呢?也就是说怎么样动态的获取这个客户端的IP和端口号?rnrn请高人指教!!!
Socket Tcp/IP
Socket Tcp/IP 网络通信。。。基础
Socket 面向 TCP/IP 的服务类型(关键词:socket/TCP/IP)
Socket 面向 TCP/IP 的服务类型 参考文献 《1 计算机网络之网尽其用》 - 哈工大 - 网易慕课 - 31.2.7 Socket编程(3) - Socket API 函数(1) - 07分00秒。
内网ip怎么建站?
我用的是小区的宽带,想在自己的机子上加个网站,可是我机子的ip是10.x.x.x,登陆外网时显示我的ip却是61.x.x.x 查资料说可以用端口映射的方法,可那必须在网关处设置映射,而我无法访问网关,也不可能动网关的机子 , 问:有没有办法建站?rn
socket 内网
我远端的服务器怎么发送数据给一个公司内网的一台电脑。谢谢大家。
外网IP 与 内网IP
外网的IP是一样的,内网的IP不一样.你们都用一个外网的IP上网,但是使用的端口是不一样的 计算机通信要用到IP地址和Port端口号。 你们上网的时候路由器会随机的给你们的电脑一个端口号并且是不一样的。 比如你们都用一个路由上网(网外的IP假如是:213.25.31.1) 内网的IP地址如下 A电脑的IP是192.168.1.100 B电脑的IP是192.168.1.101 C电脑的IP是192....
外网ip和内网ip
因为笔记本用的无线网卡路由器的网,所以这个网卡的ipv4是路由器局域网分配的ip,默认网关当然是路由器:   而外网ip:   虚拟机ip(NAT模式): 网关192.168.112.0 为虚拟网关,并非主机vmnet8的地址...
关于socket=new Socket(ip,port),急!!
java写了一个远程控制软件,主机输入port号,客户端输入主机ip,port号即可连接rn但是现在有一个问题:必须由主机先输入port号,客户端后输入主机ip,port号才能连接rn而如果:客户端先输入主机ip,port号则会出现下图问题rn[img=https://img-bbs.csdn.net/upload/201611/04/1478227392_257626.jpg][/img]rn怎么解决这个问题,因为有时候需要客户端先输入ip,port
socket 获得socket对应的本地ip和端口
我已经获得了一个socket rn然而我怎么获得socket对应的本地ip和端口?rnrngetsockname,只是支持tcp连接,rn如果我的这个socket 对应的udp连接,怎么获得呢?rnrnPS:我做一个网络截包工具,detour拦截send,recv函数,rn可以获得他的socket,然而怎么根据这个socket获得这个socket对应的本地的ip和端口呢?rn求解释...
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件