java TCP客户端 服务端 互访

服务端:

   1, 创建socket服务器服务,服务器端为了让客户端可以连接上,必须提供端口,监听一个端口
     2,获取客户端对象,通过客户端的socket流和对应的客户端进行通信
    3,获取客户端的socket流的读取流
    4,读取数据并显示在服务器端
    5,关闭资源

 

package cn.net.tcp;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class tcpServer {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		System.out.println("服务器启动....");
		ServerSocket ss = new ServerSocket(10003);
		Socket s = ss.accept();
		InputStream in =s.getInputStream();
		byte[] buf = new byte[1024];
		int len = in.read(buf);
		String str = new String(buf,0,len);
		System.out.println(str);
		
		 OutputStream out = s.getOutputStream();
		 out.write("我知道你来了..".getBytes());
		
         s.close();
         ss.close();
	}

}

客户端:

 1,建立tcp客户端服务
       因为是面向连接,必须有连接才可以进行通信
       在创建客户端时,就必须明确目的的地址和端口
    2,一旦连接建立,就有了传输数据的通道。就可以在通道中进行数据传输,
        这个传输其实就是通过流实现的。这个流就是 socket io流。
    3,只要获取socket io中的写动作就可以数据写到socket流中发送给服务端
    4,关闭资源。

 

package cn.net.tcp;


import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class tcpClient {

	/**
	 * @param args
	 * @throws IOException 
	 * @throws UnknownHostException 
	 */
	public static void main(String[] args) throws UnknownHostException, IOException {
		System.out.println("客户端启动....");
		Socket s = new Socket("127.0.0.1",10003);
		
		OutputStream out = s.getOutputStream();
		out.write("又要注意了,tcp来了。".getBytes());
		
		 InputStream in =s.getInputStream();
		 byte[] b = new byte[1024];
		 int len  = in.read(b);
		 String str = new String(b,0,len);
		 System.out.println(str);

		s.close();

	}

}


以下是使用 Go 实现的基本 TCP 客户端服务端: ### TCP 客户端 ```go package main import ( "fmt" "net" ) func main() { // 连接服务器 conn, err := net.Dial("tcp", "localhost:8080") if err != nil { fmt.Println("连接服务器失败:", err) return } defer conn.Close() // 发送数据 data := []byte("Hello, server!") _, err = conn.Write(data) if err != nil { fmt.Println("发送数据失败:", err) return } // 接收服务器响应 buf := make([]byte, 1024) n, err := conn.Read(buf) if err != nil { fmt.Println("接收服务器响应失败:", err) return } fmt.Println("服务器响应:", string(buf[:n])) } ``` ### TCP 服务端 ```go package main import ( "fmt" "net" ) func main() { // 监听端口 listener, err := net.Listen("tcp", "localhost:8080") if err != nil { fmt.Println("监听端口失败:", err) return } defer listener.Close() fmt.Println("开始监听端口...") for { // 接收客户端连接 conn, err := listener.Accept() if err != nil { fmt.Println("接收客户端连接失败:", err) continue } // 处理客户端请求 go handleConn(conn) } } func handleConn(conn net.Conn) { defer conn.Close() // 接收客户端请求 buf := make([]byte, 1024) n, err := conn.Read(buf) if err != nil { fmt.Println("接收客户端请求失败:", err) return } fmt.Println("客户端请求:", string(buf[:n])) // 发送响应 data := []byte("Hello, client!") _, err = conn.Write(data) if err != nil { fmt.Println("发送响应失败:", err) return } } ``` 以上代码演示了一个简单的 TCP 客户端服务端的实现。当客户端连接到服务端时,服务端将启动一个新的 goroutine 来处理客户端请求,并向客户端发送响应。在实际应用中,您可能需要根据您的需求进行更改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值