您的位置:首页 > 编程语言 > Java开发

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

2013-10-10 09:33 246 查看
错误:

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();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐