如何检测和解决端口冲突问题:
使用netstat命令查看当前正在被使用的TCP端口号
通过一个配置参数来指定TCP服务程序所使用的端口号
将用户所指定的端口号保存到一个文件中,当服务器程序下次启动运行时,直接从文件中读取即可
TCP网络连接上传递对象
ObjictInputStream和ObjectOutputStream可以从底层输入流中读取对象类型的数据和将对象类型数据写入底层输出流
使用ObjictInputStream和ObjectOutputStream来包装底层网络字节流,TCP服务器和TCP客户端之间就可以传递对象类型的数据
编程实例: 通过网络传输java对象
import java.io.*;
import java.net.*;
public class Student implements Serializable {
int id; //定义属性id
String name;//定义属性名字
int age;//定义属性年龄
String department;//定义属性所在系
//构造方法,用于赋值
public Student(int id,String na,int a,String de){
this.id=id;
this.name=na;
this.age=a;
this.department=de;
}
public static class ObjectServer{
public static void main(String [] args) throws IOException{
//创建 ServerSocket 对象
ServerSocket ss = new ServerSocket(8001);
// 返回Socket对象
Socket s = ss.accept();
//得到输出流对象
OutputStream ops = s.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(ops);
//创建Student 对象
Student stu = new Student(19,"王五",23,"网络系");
oos.writeObject(stu);
oos.close();
s.close();
ss.close();
}
}
}
URL类
构造函数:
public URL(String spec)
public URL(String protocol,String host,int port,String file)
public URL(String protocol,String host,int port,String file,URLStreamHandler handler)
public URL(URL context,String spec)
getProtocol方法,getHost方法、getPort方法、 getFile方法等等
openConnection方法返回URLConnection对象
工厂设计模式:
URL类的setURLStreamHandlerFactory静态方法
StreamHandlerFactory类的createURLStreamHandler方法