使用java写tcp服务端

因为要和另一家公司合作,就需要一下测试的服务器端,很简单,发一下

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketException;
import java.text.DecimalFormat;

/**
 * 
 */
public class SeverTest extends Thread {

	private Socket client;
	private static String split = "\t";
	private static String mac = "00000000";

	public SeverTest(Socket c) {
		this.client = c;
		try {
			client.setSoTimeout(1000 * 30);
		} catch (SocketException e) {
			e.printStackTrace();

		}
	}

	/**
	 * 线程方法
	 */
	public void run() {
		BufferedReader in = null;
		PrintWriter out = null;
		String strfromboss = null;
		String re = "";
		try {
			in = new BufferedReader(new InputStreamReader(client
					.getInputStream()));
			out = new PrintWriter(client.getOutputStream());
			strfromboss = in.readLine();
			strfromboss = strfromboss.trim();
			// 接收信息机数据
			System.out.println("[Client IP:" + client.getInetAddress() + "\n"
					+ "from client:" + strfromboss);
			// 拆分数据包
			String remap[] = strfromboss.split("\t");

			// 申请交易密码
			if (remap[1].equals("0100")) {

				re = type1(remap);

			}
	
			// 发送到信息机数据
			System.out.println("[Client IP:" + client.getInetAddress() + "\n"
					+ "to client:" + re);

			out.println(re);
			out.flush();

		} catch (Exception e) {
			System.out.println("错误" + e.toString());

		} finally {
			try {

				if (out != null)
					out.close();
				if (in != null)
					in.close();
				if (client != null)
					client.close();
			} catch (Exception ex) {

				System.out.println("错误" + ex.toString());

			}

		}
	}

	private static String type1(String[] arg) {

		return "helo world";
	}

	

	private static String makeln(int ln) {
		String strln = "";
		DecimalFormat df = new DecimalFormat("0000");
		strln = String.valueOf(df.format(ln));
		return strln;
	}

	/**
	 * 函数入口
	 * 
	 * @param args
	 * @throws Exception
	 * @throws IOException
	 */
	public static void main(String[] args) throws Exception {

		ServerSocket server;

		server = new ServerSocket(9977);

		server.setReuseAddress(true);

		while (true) {
			System.out.println("wait for a client...");
			SeverTest ms = new SeverTest(server.accept());
			ms.start();
		}

	}

}
 
下面是一个简单的Java TCP服务器示例代码,可以监听来自客户端的连接请求,并将收到的消息返回给客户端: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class TCPServer { public static void main(String[] args) { int portNumber = 12345; // 服务器监听端口号 try ( ServerSocket serverSocket = new ServerSocket(portNumber); Socket clientSocket = serverSocket.accept(); PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true); BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); ) { String inputLine; while ((inputLine = in.readLine()) != null) { System.out.println("Received message from client: " + inputLine); out.println("Server received message: " + inputLine); } } catch (IOException e) { System.err.println("Error occurred while running the server: " + e.getMessage()); } } } ``` 该服务器监听端口号为12345,当客户端与它建立连接时,它会读取客户端发送的消息,并将收到的消息返回给客户端。可以使用以下代码在本地启动该服务器: ```java public class Main { public static void main(String[] args) { TCPServer server = new TCPServer(); server.main(args); } } ``` 当服务器启动后,可以使用telnet命令来连接它并发送消息: ``` telnet localhost 12345 ``` 在连接成功后,可以输入任何字符串并按下回车键,服务器将返回一个包含该字符串的消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值