导航:首页 > 编程语言 > javasocket指定客户端端口

javasocket指定客户端端口

发布时间:2025-10-16 02:50:20

A. java Socket甯歌佸紓甯稿勭悊

銆銆鍦╦ava缃戠粶缂栫▼Socket閫氫俊涓 閫氬父浼氶亣鍒颁互涓嬪紓甯告儏鍐

銆銆绗 涓寮傚父鏄 BindException:Address already in use: JVM_Bind

銆銆璇ュ紓甯稿彂鐢熷湪鏈嶅姟鍣ㄧ杩涜宯ew ServerSocket(port)锛坧ort鏄涓涓 鐨勬暣鍨嬪硷級鎿嶄綔鏃 寮傚父鐨勫師鍥犳槸浠ヤ负涓巔ort涓鏍风殑涓涓绔鍙e凡缁忚鍚鍔 骞惰繘琛岀洃鍚 姝ゆ椂鐢╪etstat an鍛戒护 鍙浠ョ湅鍒颁竴涓狶istending鐘舵佺殑绔鍙 鍙闇瑕佹壘涓涓娌℃湁琚鍗犵敤鐨勭鍙e氨鑳借В鍐宠ラ棶棰樹簡

銆銆绗 涓寮傚父鏄 ConnectException: Connection refused: connect

銆銆璇ュ紓甯稿彂鐢熷湪瀹㈡埛绔杩涜 new Socket(ip port)鎿嶄綔鏃 璇ュ紓甯稿彂鐢熺殑鍘熷洜鏄鎴栬呭叿鏈塱p鍦板潃鐨勬満鍣ㄤ笉鑳芥壘鍒帮紙涔熷氨鏄璇翠粠褰撳墠鏈哄櫒涓嶅瓨鍦ㄥ埌鎸囧畾ip璺鐢憋級 鎴栬呮槸璇ip瀛樺湪 浣嗘壘涓嶅埌鎸囧畾鐨勭鍙h繘琛岀洃鍚 鍑虹幇璇ラ棶棰 棣栧厛妫鏌ュ㈡埛绔鐨刬p鍜宲ort鏄鍚﹀啓閿 濡傛灉姝g‘鍒欎粠瀹㈡埛绔痯ing涓涓嬫湇鍔″櫒鐪嬫槸鍚﹁兘ping閫 濡傛灉鑳絧ing閫氾紙鏈嶅姟鍣ㄧ鎶妏ing绂佹帀鍒欓渶瑕佸彟澶栫殑鍔炴硶锛 鍒欑湅鍦ㄦ湇鍔″櫒绔鐨勭洃鍚鎸囧畾绔鍙g殑绋嬪簭鏄鍚﹀惎鍔 杩欎釜鑲瀹氳兘瑙e喅杩欎釜闂棰

銆銆绗 涓寮傚父鏄 SocketException: Socket is closed

銆銆璇ュ紓甯稿湪瀹㈡埛绔鍜屾湇鍔″櫒鍧囧彲鑳藉彂鐢 寮傚父鐨勫師鍥犳槸鏈绔涓诲姩鍏抽棴浜嗚繛鎺ュ悗锛堣皟鐢ㄤ簡Socket鐨刢lose鏂规硶锛夊啀瀵圭綉缁滆繛鎺ヨ繘琛岃诲啓鎿嶄綔

銆銆绗 涓寮傚父鏄 SocketException: 锛圕onnection reset鎴栬匔onnect reset by peer:Socket write error锛

銆銆璇ュ紓甯稿湪瀹㈡埛绔鍜屾湇鍔″櫒绔鍧囨湁鍙鑳藉彂鐢 寮曡捣璇ュ紓甯哥殑鍘熷洜鏈変袱涓 绗涓涓灏辨槸濡傛灉涓绔鐨凷ocket琚鍏抽棴锛堟垨涓诲姩鍏抽棴鎴栬呭洜涓哄紓甯搁鍑鸿屽紩璧风殑鍏抽棴锛 鍙︿竴绔浠嶅彂閫佹暟鎹 鍙戦佺殑绗涓涓鏁版嵁鍖呭紩鍙戣ュ紓甯(Connect reset by peer) 鍙︿竴涓鏄涓绔閫鍑 浣嗛鍑烘椂骞舵湭鍏抽棴璇ヨ繛鎺 鍙︿竴绔濡傛灉鍦ㄤ粠杩炴帴涓璇绘暟鎹鍒欐姏鍑鸿ュ紓甯革紙Connection reset锛 绠鍗曠殑璇村氨鏄鐢辫繛鎺ユ柇寮鍚庣殑璇诲拰鍐欐搷浣滃紩璧风殑

銆銆绗 涓寮傚父鏄 SocketException: Broken pipe

銆銆璇ュ紓甯稿湪瀹㈡埛绔鍜屾湇鍔″櫒鍧囨湁鍙鑳藉彂鐢 鍦ㄧ 涓寮傚父鐨勭涓绉嶆儏鍐典腑锛堜篃灏辨槸鎶涘嚭 SocketExcepton:Connect reset by peer:Socket write error鍚庯級 濡傛灉鍐嶇户缁鍐欐暟鎹鍒欐姏鍑鸿ュ紓甯 鍓嶄袱涓寮傚父鐨勮В鍐虫柟娉曟槸棣栧厛纭淇濈▼搴忛鍑哄墠鍏抽棴鎵鏈夌殑缃戠粶杩炴帴 鍏舵℃槸瑕佹娴嬪规柟鐨勫叧闂杩炴帴鎿嶄綔 鍙戠幇瀵规柟鍏抽棴杩炴帴鍚庤嚜宸变篃瑕佸叧闂璇ヨ繛鎺

銆銆浜岋紟缂栧啓缃戠粶绋嬪簭鏃堕渶瑕佹敞鎰忕殑闂棰:

銆銆 鏄瑕佹g‘鍖哄垎闀 鐭杩炴帴 鎵璋撶殑闀胯繛鎺ユ槸鎸囦竴缁忓缓绔嬪氨姘镐箙淇濇寔 鐭杩炴帴鐨勬儏鍐垫槸 鍑嗗囨暟鎹鈥>寤虹珛杩炴帴鈥>鍙戦佹暟鎹鈥>鍏抽棴杩炴帴 寰堝氱殑绋嬪簭鍛樺啓浜嗗氬勾鐨勭綉缁滅▼搴 灞呯劧涓嶇煡閬撲粈涔堟槸闀胯繛鎺 浠涔堟槸鐭杩炴帴

銆銆 鏄瀵归暱杩炴帴鐨勭淮鎶 鎵璋撶淮鎶ゅ寘鎷涓や釜鏂归潰 棣栧厛鏄妫娴嬪规柟鐨勪富鍔ㄦ柇杩烇紙鍗宠皟鐢 Socket鐨刢lose鏂规硶锛 鍏舵℃槸妫娴嬪规柟鐨勫畷鏈 寮傚父閫鍑哄強缃戠粶涓嶉 杩欐槸涓涓鍋ュ.鐨勯氫俊绋嬪簭蹇呴』鍏峰囩殑 妫娴嬪规柟鐨勪富鍔ㄦ柇杩炲緢绠鍗 涓昏佷竴鏂逛富鍔ㄦ柇杩 鍙︿竴鏂瑰傛灉鍦ㄨ繘琛岃绘搷浣 鍒欐ゆ椂鐨勮繑鍥炲煎彧 涓鏃︽娴嬪埌瀵规柟鏂杩 鍒欏簲璇ヤ富鍔ㄥ叧闂鏈绔鐨勮繛鎺ワ紙璋冪敤Socket鐨刢lose鏂规硶锛 鑰屾娴嬪规柟鐨勫畷鏈 寮傚父閫鍑哄強缃戠粶涓嶉 甯哥敤鏂规硶鏄鐢 蹇冭烦 涔熷氨鏄鍙屾柟鍛ㄦ湡鎬х殑鍙戦佹暟鎹缁欏规柟 鍚屾椂涔熶粠瀵规柟鎺ユ敹 蹇冭烦 濡傛灉杩炵画鍑犱釜鍛ㄦ湡閮芥病鏈夋敹鍒板规柟蹇冭烦 鍒欏彲浠ュ垽鏂瀵规柟瀹曟満 寮傚父閫鍑烘垨鑰呯綉缁滀笉閫 姝ゆ椂涔熼渶瑕佷富鍔ㄥ叧闂鏈绔杩炴帴 濡傛灉鏄瀹㈡埛绔鍙鍦ㄥ欢杩熶竴瀹氭椂闂村悗閲嶆柊鍙戣捣杩炴帴 铏界劧Socket鏈変竴涓猭eep alive閫夐」鏉ョ淮鎶よ繛鎺 濡傛灉鐢ㄨラ夐」 涓鑸闇瑕佷袱涓灏忔椂鎵嶈兘鍙戠幇瀵规柟鐨勫畷鏈 寮傚父閫鍑哄強缃戠粶涓嶉

lishixin/Article/program/Java/hx/201311/26630

B. JAVA 问题,用socket编写一个客户端程序

给你一个我写的示例,用的是基于TCP的Socket技术,你锻炼一下,改一改,不会改再找我!
客户端:
import java.net.Socket;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;

public class TcpClient {

public static void main(String[] args) throws Exception
{
//创建客户端Socket服务,并且制定主机和ank
Socket s = new Socket("192.168.1.104",10002);//连接固定的主机和端口

//为了发送数据,获取Socket中的输入输出流
OutputStream out = s.getOutputStream();
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String line = null;

//读取服务器发过来的数据
InputStream in = s.getInputStream();
byte[] buf = new byte[1024];

while((line = br.readLine())!=null)
{
out.write(line.getBytes());
if("886".equals(line))
break;

int len = in.read(buf);
String content = new String(buf,0,len);
System.out.println("Server:"+content);
}

s.close();

}
}

服务器:
/*
* 需求分析:
* 使用TCP协议,写服务器端。做到服务器能收到客户端的信息,也能向客户端发送信息
* */

package JavaNetProgramming;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;

public class TcpServer {
public static void main(String[] args) throws Exception
{
//建立服务器的Socket服务,并且监听一个端口
ServerSocket ss = new ServerSocket(10002);
Socket s = ss.accept();
InputStream is = s.getInputStream();

//从服务器端向客户端发送数据
OutputStream out = s.getOutputStream();
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String line = null;

while(true)
{
//通过accept()方法获得客户端传过来的Socket对象

// System.out.println("getByNanme():"+s.getInetAddress());
System.out.print("getHostAddress():"+s.getInetAddress().getHostAddress());

//获取客户端发过来的数据,就要使用客户端对象的读取流来读取数据

byte[] buf = new byte[1024];
int len = is.read(buf);//把流中数据读到字节数组中
String content = new String(buf,0,len);
System.out.println(" "+content);

if("886".equals(content))
break;
while((line = br.readLine())!=null)
{
out.write(line.getBytes());
break;
}

}

s.close(); //循环内有判断语句,这句话才不出错
ss.close();

}

}

C. java Socket能写浏览器吗,我想用Socket写一个浏览器

第一个问题:

当serversocket.accept()成功返回时(设为sSocket),就已经和客户端发起该连接请求的

socket线程之间建立起了tcp实体连接,这个链接当中包涵了该请求线程使用的端口号和ip地址,当sSocket通过输出流回送数据时,数据包里包涵了接收端的ip地址和客户端线程对应的端口号,当在该端口号上监听的socket监听到数据后,对数据进行加工处理(如浏览器显示)。

第二个问题:

单个浏览器窗口或者选项卡对应一个进程,每个进程发起tcp或者http请求时,将绑定到一个指定端口(如12340,23450等等),并在自己绑定的

端口上设置监听,当数据到来时是路由器将数据发送到指定内网ip地址,到达客户机之后根据数据包的端口信息,将数据发送到对应的端口,此时哪个进程的监听

端口听到了数据,就是哪个浏览器窗口或者选项卡显示。其他的窗口不监听该端口的,没有任何动作。

浏览器不管每次返回的资源是哪次的请求,发起请求的浏览器进程自动监听建立tcp连接时使用端口号,回送的数据包里包涵了端口号,所以操作系统知道该将数据发送到哪个端口。

就是说端口号是和内存中的应用程序绑定的。


D. java中如何检测本机指定的UDP服务端口是否被占用并且自动分配一个可用udp端口;

1.端口占用编译器会报错,可以从错误看出来是不是端口被占用。没有专门的检测工具和方法
2.DatagramSocket(在Java中使用UDP协议编程的相关类)
用于接收和发送UDP的Socket实例。该类有3个构造函数:
DatagramSocket():通常用于客户端编程,它并没有特定监听的端口,仅仅使用一个临时的。程序会让操作系统分配一个可用的端口。
DatagramSocket(int port):创建实例,并固定监听Port端口的报文。通常用于服务端
DatagramSocket(int port, InetAddress localAddr):这是个非常有用的构建器,当一台机器拥有多于一个IP地址的时候,由它创建的实例仅仅接收来自LocalAddr的报文。
DatagramSocket具有的主要方法如下:
1)receive(DatagramPacket d):接收数据报文到d中。receive方法产生一个“阻塞”。“阻塞”是一个专业名词,它会产生一个内部循环,使程序暂停在这个地方,直到一个条件触发。

2)send(DatagramPacket dp):发送报文dp到目的地。

3)setSoTimeout(int timeout):设置超时时间,单位为毫秒。

4)close():关闭DatagramSocket。在应用程序退出的时候,通常会主动释放资源,关闭Socket,但是由于异常地退出可能造成资源无法回收。所以,应该在程序完成时,主动使用此方法关闭Socket,或在捕获到异常抛出后关闭Socket。
希望对您有帮助谢谢

阅读全文

与javasocket指定客户端端口相关的资料

热点内容
微信里的文件在哪个文件夹里面 浏览:925
jsf2视频教程 浏览:592
高新区学数控编程怎么学 浏览:439
word提示文件无法转换 浏览:192
系统数据结构表如何画 浏览:568
网络广告存在的问题 浏览:313
向上循环配置文件是什么意思 浏览:804
java怎么表示不是数值 浏览:601
三星手机相册里的文件 浏览:223
flash源文件破解 浏览:161
灵星雨接收卡如何写配置文件 浏览:988
javasocket指定客户端端口 浏览:480
电脑编程窗口怎么创建 浏览:509
java两地最短路 浏览:332
手机便签程序在手机哪个文件夹里 浏览:521
EPROM程序的烧写 浏览:436
windows密码多少位的吗 浏览:585
51单片机定时器0程序 浏览:505
怎么删除自己注册的网站 浏览:365
ps盘符后能看到一个文件吗 浏览:735

友情链接