导航:首页 > 编程语言 > javatcp代码

javatcp代码

发布时间:2022-07-11 06:16:13

Ⅰ 用java编写TCP文件传输程序

1.调用类java.lang.Math的成员方法“public static double random()”运算下面表达式10000次,
(int) (Math.random()*20+0.5)
统计其中生成的整数10,1,2,…,20的个数分别是多少,并输出统计结果。

2.调用类java.lang.Math的成员方法“public static double random()”设法生成10个互不相同的从‘a'到'z'字母,然后对这10个字母按从小到大的方式排序。输出排序前的字母序列和排序后的字母序列。

3.编写一个程序,要求输入5个学生的成绩(从0到100的整数),并将这5个数保存到文件“data.txt"中。然后再编写一个程序,从文件“data.txt”中读取这5个学生的成绩,计算并输出它们的平均数,然后再按照从小到大的顺序输出这5个学生的成绩。

4.编写一个程序,修改在上一题生成的文件“data.txt”中的文件内容,使得第三个学生的成绩变成为这5个学生的平均成绩,并在控制台窗口中输出在修改之后的文件内容

Ⅱ 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/IP网络通信服务器客户端,实现双方信息交互。

packagecom.weixin.test;

importjava.io.IOException;
importjava.io.InputStream;
importjava.io.OutputStream;
importjava.net.InetAddress;
importjava.net.ServerSocket;
importjava.net.Socket;

importorg.junit.Test;

publicclassScoketTest{

@Test
publicvoidclient()throwsException{

InetAddressi=InetAddress.getByName("127.0.0.1");


Sockets=newSocket(i,9000);

OutputStreamoutputStream=s.getOutputStream();

outputStream.write("服务端你好,我是客户端哦!".getBytes());

s.shutdownOutput();
InputStreaminputStream=s.getInputStream();

intlength=0;

byte[]bytes=newbyte[1024];

while((length=inputStream.read(bytes))!=-1){
System.err.println(newString(bytes,0,length));
}

inputStream.close();
outputStream.close();
s.close();
}


@Test
publicvoidserver()throwsException{

ServerSocketserverSocket=newServerSocket(9000);

Socketsocket=serverSocket.accept();

InputStreaminputStream=socket.getInputStream();

OutputStreamoutputStream=socket.getOutputStream();

intlength=0;

byte[]bytes=newbyte[1024];

while((length=inputStream.read(bytes))!=-1){
System.err.println(newString(bytes,0,length));
}

outputStream.write("客户端你好,本王已收到!".getBytes());

outputStream.close();
inputStream.close();
socket.close();
serverSocket.close();




}

}

Ⅳ 在Java中实现TCP协议编程中怎么传

在Java中实现TCP协议编程

ServerSocket:编写TCP网络服务程序,首先要用到java.net.ServerSocket类用以创建服务器Socket

构造方法:

ServerSocket(intport):创建绑定到特定端口的服务器套接字

ServerSocket(intport,intbacklog):利用指定的backlog(服务器忙时保持连接请求的等待客户数量),创建服务器套接字并将其绑定到指定的本地端口号。

ServerSocket(intport,intbacklog,InetAddressbindAddr):使用指定的端口、侦听backlog和要绑定到的本地IP地址创建服务器。

Socket:客户端要与服务器建立连接,必须先创建一个Socket对象

常用构造方法

Socket(Stringhost,intport):创建一个流套接字并将其连接到指定主机上的指定端口号。

Socket(InetAddressaddress,intport):创建一个流套接字并将其连接到指定IP地址的指定端口号。

服务器端程序调用ServerSocket类中的accept()方法等待客户端的连接请求,一旦accept()接收了客户端连接请求,该方法返回一个与该客户端建立了专线连接的Socket对象,不用程序去创建这个Socket对象。建立了连接的两个Socket是以IO流的方式进行数据交换的,Java提供了Socket类中的getInputStream()返回Socket的输入流对象,getOutputStream()返回Socket的输出流对象。

TCP服务器与TCP客户端间的数据的接受图示:

用TCP实现服务器与客户端的“聊天”:

实例代码:

客户端:

packagecom.hbsi.net;

importjava.net.Socket;

importjava.io.*;

publicclassTcpClient{

publicstaticvoidmain(String[]args)throwsException{

//1.建立tcp客户端socket,要确定要连接的服务器ip,port

Sockets=newSocket("192.168.49.87",9009);

//获取键盘录入

BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));

//2.通过建立的socket,获取输出流对象

//数据输出给服务器端

OutputStreamout=s.getOutputStream();

BufferedWriterbwout=newBufferedWriter(newOutputStreamWriter(out));

//获取服务器端返回的数据

//读取服务器端发过来的信息InputStreamReader()

BufferedReaderbrin=newBufferedReader(newInputStreamReader(

s.getInputStream()));

Stringline=null;

while((line=br.readLine())!=null){

if(line.equals("over"))

break;

bwout.write(line);

bwout.newLine();

bwout.flush();

Stringstr=brin.readLine();

System.out.println("server:"+str);

}

br.close();

s.close();

}

}

服务器端:

packagecom.hbsi.net;

importjava.io.BufferedReader;

importjava.io.BufferedWriter;

importjava.io.InputStream;

importjava.io.InputStreamReader;

importjava.io.OutputStreamWriter;

importjava.net.ServerSocket;

importjava.net.Socket;

publicclassTcpServer{

publicstaticvoidmain(String[]args)throwsException{

//1.建立服务器socket

ServerSocketss=newServerSocket(9009);

//2.调用accept()

Sockets=ss.accept();

System.out.println(s.getInetAddress().getHostAddress()

+"...connection");

//读取客户的信息的输入流

InputStreamin=s.getInputStream();

BufferedReaderbrin=newBufferedReader(newInputStreamReader(in));

//向客户端发送信息输出流,服务端向客户端返回信息OutputStreamWriter()

BufferedWriterbrout=newBufferedWriter(newOutputStreamWriter(

s.getOutputStream())); Stringline=null;

while((line=brin.readLine())!=null){

System.out.println("client:"+line);

brout.write(line.toUpperCase());//服务器端收到信息后,将信息转为大写返回给客户端toUpperCase()

brout.newLine();

brout.flush();

}

s.close();

ss.close();

}

}

Ⅳ 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的Modbus/TCP协议 源代码

public static void TestModbus() throws Exception{
IpParameters params = new IpParameters();
params.setHost("localhost");//地址
params.setPort(502);//端口
ModbusFactory factory = new ModbusFactory();
ModbusMaster master = factory.createTcpMaster(params, true);

// 初始化
try {
master.init();
readHoldingRegistersTest(master,1,0,3);

} catch (ModbusInitException e) {
e.printStackTrace();
} finally {
master.destroy();
}

}

public static void main(String[] args) {
try {
TestModbus();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}

private static void readHoldingRegistersTest(ModbusMaster master,
int slaveId, int start, int len) {
try {
// ReadInputRegistersRequest request = new ReadInputRegistersRequest(
// slaveId, start, len);
// ReadInputRegistersResponse response = (ReadInputRegistersResponse) master
// .send(request);
ReadHoldingRegistersRequest request = new ReadHoldingRegistersRequest(
slaveId, start, len);
ReadHoldingRegistersResponse response = (ReadHoldingRegistersResponse) master
.send(request);
if (response.isException()) {
System.out.println("Exception response: message="
+ response.getExceptionMessage());
} else {
ByteQueue byteQueue= new ByteQueue(12);
response.write(byteQueue);
System.out.println(byteQueue);

System.out.println(Arrays.toString(response.getShortData()));
short[] list = response.getShortData();
for(int i = 0; i < list.length; i++){
System.out.print(list[i] + " ");
}
}
} catch (ModbusTransportException e) {
e.printStackTrace();
}
}

Ⅶ java如何通过tcp向指定的IP发送指令并获得返回的包

以下是一个展示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服务端

服务器监听端口 做个无限循环 接到一个连接就创建一个通道线程,并将通道线程存储到一个list集合中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/*
* 4.用socket通讯写出多个客户端和一个服务器端的通讯,
* 要求客户发送数据后能够回显相同的数据(回显功能)(实用TCP方式)。
*/
public class Test4Server {

// 主入口
public static void main(String[] args) throws IOException {
scoketServer();
}

// 开启的tcp8888监听端口
public static void scoketServer() throws IOException {
ServerSocket server = new ServerSocket(8888);
while (true) {
// 未连通前线程阻塞,连通后开启一个socket通道线程后继续监听8888端口
Socket socket = server.accept();
System.out.println(socket.getInetAddress().getHostAddress()
+ "连接进入");
new SocketThread(socket).start();
}
}

}

// 一个服务器端口中监听多个客服端通道线程
class SocketThread extends Thread {
// 所有通道写入流的集合
private static List<PrintWriter> list =new ArrayList<PrintWriter>();

private BufferedReader bufferedReader;
private PrintWriter printWriter;

public SocketThread(Socket socket) throws IOException {
this.bufferedReader = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
this.printWriter = new PrintWriter(socket.getOutputStream());
list.add(printWriter);
}

@Override
public void run() {
String string = null;
while (true) {
try {
// 服务器在通道中读到的信息回显给客服端
string = bufferedReader.readLine();
System.out.println("客服端信息:" + string);
for(PrintWriter printWriter:list ){
printWriter.write("服务器回显:" + string + "\r\n");
printWriter.flush();
}
} catch (IOException e) {

}
}

}
}

客服端代码 可以用在局域网中用多台来连接测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;

public class Test4Client {
public static Object obj = new Object();

// 客服端的主入口
public static void main(String[] args) throws IOException {
socketClient();
}

// 与服务器连通地址本机(127.0.0.1),局域网中其他机器是(服务器在局域网中的ip地址) 端口都是8888
public static void socketClient() throws IOException {
Socket socket = new Socket("127.0.0.1", 8888);
if (socket.isConnected()) {
// 如果连接成功了就开启写和读的进程
new writer(socket).start();
new read(socket).start();
} else {
System.out.println("服务器未开启");
}
}
}

// 写入到通道的线程
class writer extends Thread {
@SuppressWarnings("unused")
private Socket socket;
private PrintWriter printWriter;
private Scanner scanner = new Scanner(System.in);
private String str = null;

public writer(Socket socket) throws IOException {
this.socket = socket;
this.printWriter = new PrintWriter(socket.getOutputStream());

}

@Override
public void run() {
scanner.useDelimiter("\r\n");

while (true) {
System.out.print("请输入信息:");
// 产生扫描器的线程阻塞
str = scanner.next();
System.out.println("我说:"+str);
printWriter.write(str + "\r\n");
printWriter.flush();
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

// 从通道中读取的线程
class read extends Thread {
private Socket socket;
private BufferedReader bufferedReader;
private String str = null;

public read(Socket socket) throws IOException {
this.socket = socket;
this.bufferedReader = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
}

@Override
public void run() {
while (true) {

try {
str = bufferedReader.readLine();
System.out.println(str);
} catch (IOException e) {
}
try {
Thread.sleep(200);
} catch (InterruptedException e) {

e.printStackTrace();
}
}
}
}

Ⅸ 求一段最简单的java的TCP文件传输的代码,多谢了。

就收ServerSocket和Socket的使用,一个监听,一个连接,将文件写入到输出流中,接收端获取输入流,完毕之后关闭连接,监听端自然断开。文件接收完毕,结束。代码原先有,现在找不到了。

Ⅹ 用java编写一个能进行简单TCP/IP通信的C/S程序

import java.net.ServerSocket;
import java.net.Socket;

public class TcpServer
{
public static void main(String[] args) throws Exception
{
// 创建服务器端的socket对象
ServerSocket ss = new ServerSocket(5000);

// 监听连接
Socket socket = ss.accept();
// 直到连接建立好之后代码才会往下执行

System.out.println("Connected Successfully!");

}

}

import java.net.Socket;

public class TcpClient
{
public static void main(String[] args) throws Exception
{
Socket socket = new Socket("127.0.0.1", 5000);
}

}

阅读全文

与javatcp代码相关的资料

热点内容
mdr软件解压和别人不一样 浏览:884
单片机串行通信有什么好处 浏览:320
游戏开发程序员书籍 浏览:843
pdf中图片修改 浏览:269
汇编编译后 浏览:474
php和java整合 浏览:829
js中执行php代码 浏览:440
国产单片机厂商 浏览:57
苹果手机怎么设置不更新app软件 浏览:284
转行当程序员如何 浏览:492
苹果id怎么验证app 浏览:864
查看手机命令 浏览:953
抖音反编译地址 浏览:226
如何加密软件oppoa5 浏览:233
java从入门到精通明日科技 浏览:96
拆解汽车解压视频 浏览:598
新版百度云解压缩 浏览:593
android上下拉刷新 浏览:880
centos可执行文件反编译 浏览:839
林清玄pdf 浏览:271