包含javasocketping的词条

今天给各位分享javasocketping的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

1、java socket 问题2、用java的socket链接自己的电脑和阿里云服务器,出现连接超时错误,怎么办3、用java的Socket编写的小小小聊天工具,在本机调试成功,但是在两台能互相ping通的电脑却不能连接上4、用JAVA Socket可以实现同一路由器下的两台电脑进行通信。那么如果不是同一路由器的电脑可以通信吗?5、Java socket编程:客户端向服务器端发送消息服务器端接受不到是怎么回事?客户端和服务器端在同一台机子6、急!急!急!用java socket连接一个服务器和客户端实现通讯,登陆失败

java socket 问题

TCP 协议明确规定 192.168.* 是无法跨越互联网路由器的,这个是 C 类地址中的,另外还有 B 类地址 172.16 及 A 类地址中的列表也有类似规定,路由器默认设置都是把数据包隔离在局域网内,不会转发到外面去。

即使双方机器 IP 不相同但都在 192.168.* 范围内依然无法跨越互联网路由器。

所以你想在跨路由器上处理需要进行 NAT 转换,在两方路由器上都为某个 IP 进行 NAT 映射,比如: 把 01001 映射为 192.168.0.1 的聊天端口,把 01002 映射为 192.168.0.2; 10103 映射到 192.168.10.103 的聊天端口上,依此类推。给 A 网 10.103 发送消息就连接到 202.207.208.209:10103 端口。

包含javasocketping的词条

用java的socket链接自己的电脑和阿里云服务器,出现连接超时错误,怎么办

说下 debug的思路 你把 服务端和客户端的代码 都在本地跑一把,用不同的端口,测试是不是代码的问题, 然后把这些代码全部部署到阿里云服务器上面去,看看在阿里云服务器上是否有问题,

然后你把你服务端的代码 部署到 阿里云上面去,首先你需要知道阿里云的外网IP, 首先你在ping 阿里云的外网IP ,能不能ping 通,查看你本地是否可以连接到 阿里云。这里面你需要注意的是 阿里云服务器本身的设置,是否开启的防火墙,是否允许对应的端口,这里有一堆网络设置的问题,能想到的就这些。 如果能ping通的话,很大可能是 阿里云服务器的网络配置问题,防火墙,端口,访问策略,允许访问的IP,不是运维,想到的就这么多

用java的Socket编写的小小小聊天工具,在本机调试成功,但是在两台能互相ping通的电脑却不能连接上

建议先用一个最简单的程序测试客户端链接服务器,这样可以排除很多干扰,下面两个类已经是客户端和服务器的最简代码了,你先测一下,如果仍不能连接,把异常信息发上来看看。

另:Socket连接容易出问题的地方:

1)端口号冲突,服务器无法启动;

2)IP地址错误,IP地址分本机地址、局域网地址和广域网地址,在不同的环境下使用不同的地址测试,如果错误将无法被客户端访问,还有如果机器安装了多网卡等问题都会引起错误;

3)防火墙禁止Java程序开放端口,不单是服务器机器的软防火墙,局域网的防火墙也可能阻止外部的访问。

import java.io.IOException;

import java.net.ServerSocket;

import java.net.Socket;

public class ServerMain {

public ServerMain() {

try {

ServerSocket ss = new ServerSocket(31647);

Socket s = ss.accept();

System.out.printf(“客户端连接成功:\n%s\n”, s.toString());

} catch (IOException e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

new ServerMain();

}

}

import java.io.IOException;

import java.net.Socket;

import java.net.UnknownHostException;

public class ClientMain {

public ClientMain() {

try {

Socket s = new Socket(“192.168.1.100”, 31647); // 修改IP地址

System.out.println(“连接服务器成功!”);

} catch (UnknownHostException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

new ClientMain();

}

}

用JAVA Socket可以实现同一路由器下的两台电脑进行通信。那么如果不是同一路由器的电脑可以通信吗?

可以 但是会困难很多 就像qq这样的软件

首先就是把ttl设的大一些 这样保证过路由的时候不会把你的包扔了

其次就是一个NAT的问题,如果是你和固定ip的服务器连接还好,就怕是两个客户端点点互联,对等体的连接是有些困难的,因为所有的pc几乎都在NAT后面

比如你是192.168.0.1 而我是192.168.0.2 可是杂俩根本就不在一个网段,

这两个地址都是只是NAT后面的保留地址

过NAT的时候,可能你实际是123.1.1.1 而我是203.1.1.1 这次是这样 下次还会变 DHCP么

两个进程要想通信,就得知道彼此的真实socket

两个程序怎么知道彼此的ip呢?

这就需要一个固定ip的第三点(中心点服务器)

你和我上来都进行对固定ip的第三点连接 第三点就会拿到你和我的NAT前面的真实地址

然后第三方 把我的真实地址告诉你 把你的告诉我

这样咱们就可进行点对点了

这就像我不知道你的电话,你也不知道我的电话,咱们怎么联系

只能通过路人甲,这个路人甲的电话是固定且已知的,咱们都先给路人甲打电话,然后他手机就能显示你的和我的号码了,他再把彼此的号码发给对方,双方就知道对方的号码了,就可以互相打电话了

比如TCP与UDP的打洞和穿洞 就是这种NAT穿越技术 这是P2P的基础 也是真实网络环境下点点互联的一个比较普遍的方案

Java socket编程:客户端向服务器端发送消息服务器端接受不到是怎么回事?客户端和服务器端在同一台机子

我大致看了下代码,没有什么问题,你需要注意其他的地方:

服务器地址是否填写正确,有没有弄错,请在发送Socket请求之前Ping一下试试,如果通则代码可以正常访问,若不通,则地址一定有问题。

检查端口号是否有问题,服务器端口号有没有填写错误。

槛车服务器网络防火墙是否开启,默认开启状态下,你怎么的也是请求不进去的。

服务器服务是否正常开启,他不开启你怎么的也请求不进去。

急!急!急!用java socket连接一个服务器和客户端实现通讯,登陆失败

好抽象的问题。。

没有抛出异常?!你至少把异常啥的贴出来吧。。

试着两台自己之间互相ping一下,如果连ping都不行,那试着把杀毒啥的都关了。再ping。如果还是不行,那没准是你物理连接有问题。如果试了直接ping是可以的,那么,应该就是你连socket都不熟悉,自己没把代码写好。。这个问题不知道异常是啥或者没有代码俺是没办法解决了。。

下面的代码可以试一下测试看看两台机子是不是可以建立连接。两边都试一下,看看行不行,如果不行,那么可能是你的jre有问题吧,又或者某XX类似防火墙的程序把你联网程序都封了~~

import java.net.*;

public class WriteServer {

public static int serverPort = 998;

public static int clientPort = 999;

public static int buffer_size = 1024;

public static DatagramSocket ds;

public static byte buffer[] = new byte[buffer_size];

public static void TheServer() throws Exception {

int pos=0;

while (true) {

int c = System.in.read();

switch (c) {

case -1:

System.out.println(“Server Quits.”);

return;

case ‘\r’:

break;

case ‘\n’:

ds.send(new DatagramPacket(buffer,pos,

InetAddress.getLocalHost(),clientPort));

pos=0;

break;

default:

buffer[pos++] = (byte) c;

}

}

}

public static void TheClient() throws Exception {

while(true) {

DatagramPacket p = new DatagramPacket(buffer, buffer.length);

ds.receive(p);

System.out.println(new String(p.getData(), 0, p.getLength()));

}

}

public static void main(String args[]) throws Exception {

if(args.length == 1) {

ds = new DatagramSocket(serverPort);

TheServer();

} else {

ds = new DatagramSocket(clientPort);

TheClient();

}

}

}

javasocketping的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、javasocketping的信息别忘了在本站进行查找喔。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年4月1日 08:12:44
下一篇 2024年4月1日 08:18:54

相关推荐

  • 包含linuxiisaccess的词条

    毕业论文:linux系统的web服务器架设 1、我们以RedHat Linux 0系统为例,想要linuxconf在Web浏览器环境工作,必须进行以下设置: * 在gnome-linuxconf对话框中,打开“Config/Networking/Misc/Linuxconf network access”分支,选中“Enable netwoork acces…

    2024年5月23日
    4400
  • 包含黑客技术学习网址的词条

    信息安全技术专业的相关学习网站有哪些? 1、关于学习类的网站有掌门1对多贝、网易云课堂、慕课、传课、CSDN、我要自学网等等。 2、网络安全主要集中在大型城市,如北京上海广州深圳等,那里安全公司特别多,如360,天融信,奇安信等,所以学习网络安全建议选择这些城市。 3、入侵检测系统技术(IDS);加密&VPN技术;产品安全;安全管理。基础课程的主要内…

    2024年5月23日
    5000
  • 包含c语言对txt文件命名的词条

    如何在C语言编程里面修改源文件名字 如果你是在WINDOWS的话,简单了,随便用个编辑器,比如记事本,然后写c源程序,保存到你想要保存的位置。如果你在DOS下,可以用edit,写好以后,按alt键,选择文件菜单,然后保存。 用open打开文件,注意操作模式使用“修改”或者“添加” 用write或者fprintf向文件中写入你的内容。 用close关闭文件。 …

    2024年5月23日
    4800
  • 包含linux启动xinetd的词条

    简述linux进程的启动.终止的方式以及如何查看进程 查看启动的进程:可以使用以面命令来查看:01ps -ef |grep tomcat复制代码tomcat它是一个Java进程,所以查找Java进程也可查找出来。 ps -ef|grep java复制代码可以看到用户和进程编号,可以用kill 进程编号结束进程。 (1)手工启动 用户在输入端发出命令,直接启动…

    2024年5月23日
    4900
  • 包含linux内核二进制在内存分布的词条

    内存管理:一文读懂Linux内存组织结构及页面布局 (1)Linux虚拟内存实现机制 Linux虚拟内存的实现需要六种机制的支持:地址映射机制、内存分配回收机制、缓存和刷新机制、请求页机制、交换机制、内存共享机制。 Linux 内存管理是操作系统内核对物理内存的分配和管理。Linux 内存管理有两个基本任务:一是把可用的内存给程序使用,二是在物理内存不足时,…

    2024年5月23日
    4400
  • 包含Simcityjava的词条

    问一下各种程序的后缀 ,应用程序通常被分为两部分:图形用户接口(GUI)和引擎(Engien)。2,应用程序后缀名:(1)在DOS或Windows系统下其扩展名为*.exe或*.com;(2)在macosx下扩展名一般为*.app。 在windows操作系统下,可执行程序扩展名通常为.exe。全名executablefile,译作可执行文件,可移植可执行(P…

    2024年5月23日
    4600
  • 包含linuxnode后台运行的词条

    怎样使linux后台运行node服务指令 1、nohup node your_app.js & forever可以让我们做得更好,并且可以跨平台的在windows和Linux下都能运行。 2、安装指定版本的node.js(服务器基本软件的安装)你可以到nodejs org官网上面找到相对的tar.gz文件包,下载然后进行源码安装。 3、nodejs一…

    2024年5月23日
    3900
  • 包含hypervlinux集成服务的词条

    如何在Linux发行版中安装并启用Hyper-V集成服务 1、方法/步骤 在网上下载好linux系统的集成服务,并插入hyper-v磁盘中。用root 用户登录linux系统。linux系统自动载入cd rom 中。选择 install.sh,选择运行。运行中,重启电脑。 2、在Hyper-V控制台新建虚机,注意虚机的网卡先选择“旧版网络适配器”,主要是方便…

    2024年5月23日
    3900
  • 包含javajbtok的词条

    java的语法 1、Java的基本语法如下:大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的。类名:对于所有的类来说,类名的首字母应该大写。 2、Java中区分大小写。类和接口名首字母必须大写,采用驼峰命名法,每一个名单词的首字母大写,例如:MyFirstJavaProgram;类名和源文件名必须一致。 3、关键字是电脑语言…

    2024年5月23日
    4000
  • 包含excelvbasaveas的词条

    如何用VBA新建一个新的excel表并将其保存在指定目录下 如下图所示,我想将桌面上第一章中的每个工作簿名称放置到工作表中。新建一个工作簿,将其命名为“第一章目录”,按alt+f11组合键,打开宏界面。 新建一个模块,将代码复制到到这个模块中,就会将当前工作表保存到thisworkbook目录下,并以txt格式来保存。 excel中使用vba来创建新的工作薄…

    2024年5月23日
    4900

发表回复

登录后才能评论



关注微信