导航:首页 > 编程语言 > javatcp文件

javatcp文件

发布时间:2025-02-23 14:49:44

❶ 在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和UDP)

Server端:
import java.io.*;
import java.net.*;
import java.applet.Applet;
public class TalkServer{
public static void main(String args[]) {
try{
ServerSocket server=null;
try{
server=new ServerSocket(4700);
}catch(Exception e) {
System.out.println("can not listen to:"+e);
}
Socket socket=null;
try{
socket=server.accept();
}catch(Exception e) {
System.out.println("Error."+e);
}
String line;
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter os=new PrintWriter(socket.getOutputStream());
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Client:"+is.readLine());
line=sin.readLine();
while(!line.equals("bye")){
os.println(line);
os.flush();
System.out.println("Server:"+line);
System.out.println("Client:"+is.readLine());
line=sin.readLine();
}
os.close();
is.close();
socket.close();
server.close();
}catch(Exception e){
System.out.println("Error:"+e);
}
}
}

Client端:
import java.io.*;
import java.net.*;
public class TalkClient {
public static void main(String args[]) {
try{
Socket socket=new Socket("127.0.0.1",4700);
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
PrintWriter os=new PrintWriter(socket.getOutputStream());
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String readline;
readline=sin.readLine(); //从系统标准输入读入一字符串
while(!readline.equals("bye")){
os.println(readline);
os.flush();
System.out.println("Client:"+readline);
System.out.println("Server:"+is.readLine());
readline=sin.readLine(); //从系统标准输入读入一字符串
}
os.close(); //关闭Socket输出流
is.close(); //关闭Socket输入流
socket.close(); //关闭Socket
}catch(Exception e) {
System.out.println("Error"+e); //出错,则打印出错信息
}
}
}

❸ java 实现抓取本地网卡TCP报文,然后解析,将其写入数据库 谁有样例代码,或者实现方式,

思路很简单开发一个小型的WEB应用,部署在长沙和北京两台服务器上,安装个tomact就可以运行和部署了这个WEB应用主要做如下事情:
接受请求,封装json串 (为什么JSON可以查一下网上大把的)1)收到http请求后,校验是否是来自另外一个服务器的请求(通过判断请求的IP地址是否否为另外一个服务器的IP地址即可)2)校验通过后读取本地服务器数据库,查询需要实时同步的数据表,查出需要同步的数据,组装成数据对象集(例如一个arraylist),然后转换为 json格式串,写入到response输出流中。
发请求获取返回结果,插入/更新数据库1)从reponse输出流中读取返回结果,将JSON串转化为对象集(网上大把的),然后开始更新/插入数据/删除数据——————————————————————————————————————由于涉及三种操作类型 更新 删除 插入 ,所以可以分别实现三个servlet来分别负责:1)查询新增数据/插入新增对象2) 查询更新数据/更新新增对象3)查询删除数据/删除待删除的对象——————————————————————————————————————定时调度同步程序使用timer写个jar程序,循环每5分钟利用httpconnnection一次请求之行下插入/更新/删除的servlet___________________________________________________________________

❹ 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发送字符串和整型数据组成的报文

在Java中,你可以使用Socket和ServerSocket类来通过TCP发送和接收数据。以下是一个简单的例子,它展示了如何发送字符串和整数数据。
首先,这是一个服务器端的代码:
java复制代码
import java.io.*;
import java.net.*;

public class TCPServer {
public static void main(String args[]) {
try {
ServerSocket serverSocket = new ServerSocket(8080);
System.out.println("Server is listening on port 8080");

Socket clientSocket = serverSocket.accept();
System.out.println("Connected to client");

DataInputStream in = new DataInputStream(clientSocket.getInputStream());
DataOutputStream out = new DataOutputStream(clientSocket.getOutputStream());

String receivedString = in.readUTF();
int receivedInt = in.readInt();

System.out.println("Received string: " + receivedString);
System.out.println("Received int: " + receivedInt);

out.writeUTF("String received");
out.writeInt(receivedInt * 2);

in.close();
out.close();
clientSocket.close();
serverSocket.close();
} catch (IOException e) {
System.out.println("Exception caught when trying to listen on port 8080 or listening for a connection");
System.out.println("Server exception: " + e.getMessage());
}
}
}
然后,这是一个客户端的代码:
java复制代码
import java.io.*;
import java.net.*;

public class TCPClient {
public static void main(String args[]) {
try {
Socket socket = new Socket("localhost", 8080);
System.out.println("Connected to server");

DataOutputStream out = new DataOutputStream(socket.getOutputStream());
DataInputStream in = new DataInputStream(socket.getInputStream());

out.writeUTF("Hello Server");
out.writeInt(123);

String receivedString = in.readUTF();
int receivedInt = in.readInt();

System.out.println("Received string: " + receivedString);
System.out.println("Received int: " + receivedInt);

in.close();
out.close();
socket.close();
} catch (IOException e) {
System.out.println("Exception caught while trying to connect to server");
System.out.println("Client exception: " + e.getMessage());
}
}
}
在这个例子中,服务器在接收到客户端发送的字符串和整数后,会打印出来,然后返回修改过的整数。客户端在接收到服务器返回的字符串和整数后,也会打印出来。

阅读全文

与javatcp文件相关的资料

热点内容
ftplinux上传文件夹 浏览:448
女生自制解压玩具无气球 浏览:506
酸奶机做西瓜解压视频 浏览:109
编程python有趣up主有哪些 浏览:739
现代加密货币价格表 浏览:811
php程序员考试 浏览:622
安卓手机怎么开镜开火不了 浏览:58
足球头条app怎么挣钱 浏览:780
stc单片机封装ad 浏览:594
如何安装信息服务器 浏览:438
那个压缩工具最好 浏览:178
中国女神程序员 浏览:186
解压包pc版 浏览:691
小学生编程大赛网址 浏览:696
闺蜜圈app怎么样 浏览:954
审题要津与解法研究pdf 浏览:606
算法工程师一般工作到几岁 浏览:480
程序员发量少怎么办 浏览:930
骨水泥治疗压缩性骨折渗漏 浏览:198
反诈app注册时间哪里可以看 浏览:859