java写tcp客户端测试类该怎么写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java写tcp客户端测试类该怎么写相关的知识,希望对你有一定的参考价值。

参考技术A 1.TCP服务端的程序编写

package test;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class MyTcp
private BufferedReader reader;
private ServerSocket serverSocket;
private Socket socket;
/**
* 创建服务端的程序,读取客户端传来的数据
*/
void getserver()
try
serverSocket = new ServerSocket(8998); //实例化服务端socket
System.out.println("服务器套接字已经创建成功");
while (true)
System.out.println("等待客户机的连接:");
socket = serverSocket.accept(); //实例化socket对象
reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); //实例化BufferReader对象
getClientMessage();

catch (Exception e)
e.printStackTrace();




private void getClientMessage()
try
while (true)
System.out.println("客户机传来的信息是:"+reader.readLine());

catch (Exception e)
e.printStackTrace();



public static void main(String[] args)
MyTcp myTcp = new MyTcp(); //创建本类对象
myTcp.getserver();


2.TCP客户端程序编写

package test;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.PrintWriter;
import java.net.Socket;
import java.nio.channels.WritableByteChannel;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.BevelBorder;

public class MyTcpClient extends JFrame
private PrintWriter printWriter;
Socket socket;
private JTextField jTextField = new JTextField();
private JTextArea jTextArea = new JTextArea();
Container container;
/**
* 创建的Tcp客户端程序
*/

public MyTcpClient (String title)
super(title);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
container = this.getContentPane();
final JScrollPane jScrollPane = new JScrollPane();
jScrollPane.setBorder(new BevelBorder(BevelBorder.RAISED)); //显示边框
getContentPane().add(jScrollPane,BorderLayout.CENTER);
jScrollPane.setViewportView(jTextArea);
container.add(jTextField,"South"); //将文本框放在窗体下面
jTextField.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent e)
printWriter.println(jTextField.getText()); //将文本框的信息写入流(为下面的输出流写入信息做准备)
jTextArea.append(jTextField.getText() + "\n");
jTextArea.setSelectionEnd(jTextArea.getText().length());
jTextField.setText(null);

);


private void connect()
jTextArea.append("尝试连接中...\n");
try
socket = new Socket("127.0.0.1",8998);
printWriter = new PrintWriter(socket.getOutputStream(),true); //将printwriter中的信息流写入到套接字的输出流传送给服务端
jTextArea.setText("已完成连接\n\n");
catch (Exception e)
e.printStackTrace();



public static void main(String[] args)
MyTcpClient myTcpClient = new MyTcpClient("向服务器发送数据");
myTcpClient.setSize(500,200);
myTcpClient.setVisible(true);
myTcpClient.connect();



3.效果展示
<1>先将服务端的程序跑起来

<2>再将客户端的程序跑起来

<3>.客户端和服务端进行交互

QT tcp 编程 【在线等】

我在arm9的linux 下写了服务器程序,float data[1]; write(tcpsocket, data, sizeof(data));
想在PC(win7)中的QT写个客户端接受网络传来的数据。看书上说QT有两种接受数据的方法,块和行的。请高手指点一下应该怎么写这个QT程序,QDataStream类的话,具体改怎么写.图片中是我写的程序,每次block 读入的数据,我in 到f里就成了0 ,不知道是什么问题,谢谢大家了。

参考技术A 你的字节长度有问题吧? sizeof(data)/sizeof(float)
如果你直接write的,你可以在收到readyRead信号后,直接处理 用readall 或循环读取。
如果用block的话,sokect收到readyRead信号后,创建一个sokect数据流 QDataStream in(sokect)
判断是否已经接收到了需要的数据块大小,如果已接收到了块大小,读取数据流。 in>>f;

以上是关于java写tcp客户端测试类该怎么写的主要内容,如果未能解决你的问题,请参考以下文章

.Net TCP探索——TCP服务端开发(同时监听多个客户端请求)

怎么根据wsdl写相应的接口

netty 的流量整形写测试

Xposed hook函数内有匿名内部类该怎么写

springboot的自定义注解功能实现类该怎么写?

loadrunner 怎么测试tcp/ip 协议的GPS,是用socket协议录制吗