知识补充:源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字。其用于标识客户端请求的服务器和服务。
TCP编程的实现步骤:服务器端:1.通过ServletSocket创建绑定到指定客户端的套接字。假设该对象名为servler
2.侦听并接受到此套接字的连接。此方法在连接传入之前一直阻塞。server.accept(),返回Socket对象
3.通过socket对象调用输入输出流。就可以向客户端输出信息
客户端:1.连接主机名。InetAddress net = InetAddress.getByName("192.168.11.229");
2.主机对象net和端口号连接。Socket socket = new Socket(net,7889);
3.通过socket获取输入输出流
package myInetaddress;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException; import org.junit.Test;
public class MyInetAddress7 { @Test
public void server() throws Exception{
//服务器获取端口号
ServerSocket server = new ServerSocket(7899);
//监视端口
Socket socket = server.accept();
//获取流
InputStream is = socket.getInputStream();
byte[] b = new byte[10];
int len=0;
while((len = is.read(b))!=-1){
System.out.println(new String(b,0,len));
}
socket.shutdownInput();
is.close();
server.close();
socket.close();
}
@Test
public void clicen() throws Exception{
InetAddress net = InetAddress.getByName("192.168.11.229");
Socket socket = new Socket(net,7899);
FileOutputStream os = (FileOutputStream)socket.getOutputStream();
os.write("你是是的看深刻的了深刻扫鹅鹅鹅鹅鹅鹅饿有意义有意义与".getBytes());
os.close();
socket.close();
} }
输出结果:
你是是的看 深刻的了深 刻扫鹅鹅鹅 鹅鹅鹅饿有 意义有意义 与