1.Socket是嵌套字,是通信的基石,是网络通信过程中端点的抽象表示。
2.Socket本身不是一个协议,而是一个调用接口(API),只有通过Socket,才能使用TCP协议。
下面是基于TCP/IP的Socket通信编程实例:
客户机端:
package TCP;
import java.io.DataOutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Scanner;
public class ClientSocket {
public static void main(String[] args) throws Exception{
InetAddress ip=InetAddress.getLocalHost();
Socket s=new Socket(ip.getHostAddress(),3333);//socket用于连接端口,server用于创建端口
DataOutputStream dos=new DataOutputStream(s.getOutputStream());//通过s获得写入流
Scanner in=new Scanner(System.in);
String writeInf=in.next();
dos.writeUTF(writeInf);
dos.flush();dos.close();
s.close();
}
}
服务端:
package TCP;
import java.io.DataInputStream;
import java.net.ServerSocket;
import java.net.Socket;
@SuppressWarnings("all")
public class serverSocket {
public static void main(String[] args) throws Exception{
ServerSocket socket=new ServerSocket(3333);
System.out.println("Socket is created.");
while(true) {//一直接受信号
Socket s=socket.accept();//通过创建端口的accept方法获取Socket对象
DataInputStream dis=new DataInputStream(s.getInputStream());//通过socket对象获得读取流
System.out.println(dis.readUTF());//读取客户机的字符
dis.close();
s.close();//记得关闭流和端口
}
}
}