本文目錄一覽:
- 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/zh-hant/n/142013.html