本文目录一览:
- 1、怎么用Java实现使用TCP协议实现文件传输程序
- 2、java写tcp客户端测试类该怎么写
- 3、java如何通过tcp发送指令
- 4、java的TCP和HTTP的区别和联系是什么?
- 5、用java建立网络连接TCP
怎么用Java实现使用TCP协议实现文件传输程序
服务端监听:ServerSocket server=new ServerSocket(port);//port:绑定的端口号
Socket client=server.accept();//监听端口,一旦取得连接则获得客户端的socket连接对象client
客户端: Socket s=new Socket(ip,port);//要连接的服务器的ip以及端口号
如果正常连接上之后,socket的对象可以获得InputStream和OutputStreame,然后就可以进行通信了
完成通信之后,执行socket对象的close()方法关闭连接,完成一次完整的socket连接
java写tcp客户端测试类该怎么写
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.客户端和服务端进行交互
java如何通过tcp发送指令
以下是一个展示java使用tcp通讯的简单例子,包括服务器和客户端代码:
/**
*TCPServer
*/
import java.io.*;
import java.net.*;
class TCPServer{
public static void main(String[] args)throws IOException{
ServerSocket listen = new ServerSocket(5050);
Socket server = listen.accept();
InputStream in = server.getInputStream();
OutputStream out = server.getOutputStream();
char c = (char)in.read();
System.out.println(“收到:” + c);
out.write(‘s’);
out.close();
in.close();
server.close();
listen.close();
}
}
/**
*TCPClient
*/
import java.io.*;
import java.net.*;
class TCPClient{
public static void main(String[] args)throws IOException{
Socket client = new Socket(“127.0.0.1” , 5050);
InputStream in = client.getInputStream();
OutputStream out = client.getOutputStream();
out.write(‘c’);
char c = (char)in.read();
System.out.println(“收到:” + c);
out.close();
in.close();
client.close();
}
}
java的TCP和HTTP的区别和联系是什么?
TCP是传输层协议,定义数据传输和连接方式的规范。握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。
HTTP 超文本传送协议(Hypertext Transfer Protocol )是应用层协议,定义的是传输数据的内容的规范。
HTTP协议中的数据是利用TCP协议传输的,特点是客户端发送的每次请求都需要服务器回送响应,它是TCP协议族中的一种,默认使用 TCP 80端口。
好比网络是路,TCP是跑在路上的车,HTTP是车上的人。每个网站内容不一样,就像车上的每个人有不同的故事一样。
用java建立网络连接TCP
服务器端:
package net;
import java.net.*;
import java.io.*;
public class TCPServer {
public static void main(String []args) throws Exception{
ServerSocket ss = new ServerSocket(6666);
int count = 0;
while (true){
Socket s = ss.accept();
count ++;
DataInputStream dis = new DataInputStream(s.getInputStream());
System.out.println(“第” + count + “个客户:” + dis.readUTF() + s.getInetAddress() + “port” + s.getPort());
dis.close();
s.close();
}
}
}
客户端:
package net;
import java.net.*;
import java.io.*;
public class TCPClient {
public static void main(String []args) throws Exception{
Socket s = new Socket(“127.0.0.1”,6666);
OutputStream os = s.getOutputStream();
DataOutputStream dos = new DataOutputStream(os);
dos.writeUTF(“HELLO SERVER !”);
System.out.println(“I am a client !”);
dos.flush();
dos.close();
s.close();
}
}
原创文章,作者:QHOB,如若转载,请注明出处:https://www.506064.com/n/142013.html