用java socket 写了一个服务器端,在内网运行是可以的,但放到外网就报端口占用,求指导

错误:

java.net.BindException: Cannot assign requested address: JVM_Bind
 at java.net.PlainSocketImpl.socketBind(Native Method)
 at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359)
 at java.net.ServerSocket.bind(ServerSocket.java:319)
 at java.net.ServerSocket.<init>(ServerSocket.java:185)
 at cn.SocketTester.main(SocketTester.java:15)

代码:

import java.io.BufferedInputStream;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;

public class SocketTester {
    public static void main(String[] args){  
        try {  
            ServerSocket serverSocket = new ServerSocket(9003,3,InetAddress.getByName("61.148.200.226")); //61.148.200.226 
            System.out.println("创建服务器套接字成功");
            while (true){  
             System.out.println("等待客户端连接");
                Socket socket=serverSocket.accept();  
                System.out.println("与客户端成功");
                socket.setSoTimeout(30000);  
                System.out.println("开始输出数据"); 
                BufferedInputStream in = new BufferedInputStream(socket.getInputStream());      
                byte[] b = new byte[1024];  
                int i = in.read(b);  
                String str = new String(b, 0, i);  
                System.out.println("RECEIVE MESSAGE:"+str);  
                  
                BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));  
                out.write(str);  
                out.flush();     
            }       
        } catch (IOException e) {
         e.printStackTrace();   
        }  
    }  

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值