在Java中,网络类都在 java.net 类库中
1.套接字
套接字是用于建立两个不同程序之间通过网络进行通信的信道。
建立套接字Socket的方法
- 在客户端使用socket类,指定服务器IP和端口号,以便连到服务器上:Socket(host_IP, prot);
- 在服务器端使用ServerSocket类,以等待客户端的连接:ServerSocket(port);
- 在客户端:建立socket连接后,还应该建立输入输出数据流。getInputStream( )获得输入流 getOutputStream( )获得输出流
D:在服务器端:ServerSocket类的accept( )方法使服务器处于阻塞状态,等待用户请求。
Socket主要方法:
2.实例:
客户机:
import java.io.*;
import java.net.*;
class C
{ public static void main(String[] args)
{ try{ Socket socket=new Socket("127.0.0.1",6565);
DataOutputStream out=new DataOutputStream(socket.getOutputStream());
out.writeUTF("我是客户机");
DataInputStream in=new DataInputStream(socket.getInputStream());
String s=in.readUTF();
System.out.println("客户机收到:"+s);
}catch(Exception e){}
}
}
服务器:
import java.io.*;
import java.net.*;
class S
{ public static void main(String[] args)
{try{ServerSocket s_socket=new ServerSocket(6565);
Socket socket=s_socket.accept();
DataInputStream in=new DataInputStream(socket.getInputStream());
String s=in.readUTF();
System.out.println("服务器收到:"+s);
DataOutputStream out=new DataOutputStream(socket.getOutputStream());
out.writeUTF("我是服务器");
}catch(Exception e){}
}
}
3.多用户时的网络问题
将服务器写成多线程的,不同的线程为不同的客户服务.main()只负责循环等待.线程负责网络连接,接收客户输入的信息