在前面的文章中,我们介绍过什么是IP,TCP协议,UDP协议,以及网络的基本构成,那么接下来,我们将用java中的socket套接字实现一个简单的TCP网络编程。
创建客户端
1 2 3 4 5 6 7 8
| import java.net.Socket;
public class TcpClient { public static void main(String[] args) throws Exception{
Socket socket=new Socket("192.168.0.103", 6666); } }
|
这里采用IO流进行简单的字节传输
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| import java.io.BufferedWriter; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.Socket;
public class TcpClient { public static void main(String[] args) throws Exception{
Socket socket=new Socket("192.168.0.103", 6666);
OutputStream os=socket.getOutputStream(); BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(os,"utf-8")); bw.write("test");
bw.close(); socket.close(); } }
|
创建服务端
这里采用ServerSocket进行创建
1 2 3 4 5 6 7 8 9 10
| public class TcpServer { public static void main(String[] args) throws Exception{
ServerSocket listener=new ServerSocket(6666);
Socket socket=listener.accept(); } }
|
然后还是用输入流读取客户端数据
1 2 3 4
| InputStream is=socket.getInputStream(); BufferedReader br=new BufferedReader(new InputStreamReader(is,"utf-8")); String data=br.readLine(); System.out.println("客户发送:"+data);
|
如果有兴趣,可以再发个数据回去,这里就不做演示了,代码大致相同 最后释放资源,整体代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket;
public class TcpServer { public static void main(String[] args) throws Exception{
ServerSocket listener=new ServerSocket(6666);
System.out.println("服务器已启动..."); Socket socket=listener.accept();
InputStream is=socket.getInputStream(); BufferedReader br=new BufferedReader(new InputStreamReader(is,"utf-8")); String data=br.readLine(); System.out.println("客户发送:"+data);
br.close(); socket.close(); listener.close(); } }
|
注意事项
1.一定要先启动服务端再启动客户端,否则会报java.net.SocketException错误 2.记得用完要关 3.可适当做些文字提示
以上即为TCP案例演示