javatcp通信(JAVATCP通信)

今天给各位分享javatcp通信的知识,其中也会对JAVATCP通信进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

1、Java TCP socket通信,如何实现发送十六进制值,并在数据接收窗口中显示这些数据对应的字符串,非常感谢!2、编写一个简单的TCP通信程序。服务器发送“你好我是服务器”,客户端接收该信息并显示在屏幕上。用Java写3、java与C#进行TCP局域网通信,丢包严重,怎么解决4、java tcp通讯只能接收客户端第一次传来的数据包

Java TCP socket通信,如何实现发送十六进制值,并在数据接收窗口中显示这些数据对应的字符串,非常感谢!

我自己的电脑上有一段源代码,就是基于TCP聊天小代码,能进行相互之间的消息接受。我的代码是直接传输字符串的,不是16进制滴。嗯,也贴出来看看吧!

运行服务器,c1,c2就可以了,c1与c2可进行通信。

Client.java

import java.net.*;

public class Client{

static byte num=1;

private int portNum;

public Client(int portnum){

this.portNum=portnum;

System.out.println(“您是第”+num+”位客服端”);

num++;

}

public void sentMessage(String me){

//都是向服务器发信息端口号1999

try{

DatagramSocket ds=new DatagramSocket();

DatagramPacket dp=new DatagramPacket(me.getBytes(),me.length(),InetAddress.getByName(“127.0.0.1”),1999);

ds.send(dp);

ds.close();

}catch(Exception e){

e.printStackTrace();

}

}

public String receiveMessage(){

String str=””;

try{

DatagramSocket ds=new DatagramSocket(this.portNum);//表示哦自己的接收端口号是1999

byte[] buf=new byte[1024];

DatagramPacket dp=new DatagramPacket(buf,1024);

ds.receive(dp);

str=new String(dp.getData(),0,dp.getLength());

ds.close();

}catch(Exception e){

e.printStackTrace();

}

return str;

}

}

c1.java

import java.util.*;

public class c1 implements Runnable{

Client cl;

boolean goon=true;

Scanner sc=new Scanner(System.in);

public c1(){

cl=new Client(2000);

System.out.println(“这里是2000客户端\n你可以发送信息。请输入要发送的信息。out退出”);

new Thread(this).start();

while(this.goon==true){

say();

}

if(goon==false){

System.exit(0);

}

}

public static void main(String[] args){

new c1();

}

public void say(){

String mess=sc.nextLine();

System.out.println(“是否发送y/n”);

String key=sc.nextLine();

if(key.equals(“y”)){

System.out.println(“信息信息发送中……”);

try{

cl.sentMessage(mess);

}catch(Exception e){

e.printStackTrace();

}

}

else if(key.equals(“out”)){

goon=false;

}

}

public void run(){

while(this.goon==true){

String sst=””;

try{

sst=cl.receiveMessage();

}catch(Exception e){

e.printStackTrace();

}

if(sst.length()0){

System.out.println(sst);

}

try{

Thread.sleep(100);

}catch(InterruptedException e){

e.printStackTrace();

}

}

System.out.println(“程序结束!”);

}

}

c2.java

import java.util.*;

public class c2 implements Runnable{

Client cl;

boolean goon=true;

Scanner sc=new Scanner(System.in);

public c2(){

cl=new Client(2001);

System.out.println(“这里是2001客户端\n你可以发送信息。请输入要发送的信息。out退出”);

new Thread(this).start();

while(goon==true){

say();

}

if(goon==false){

System.exit(0);

}

}

public static void main(String[] args){

new c2();

}

public void say(){

String mess=sc.nextLine();

System.out.println(“是否发送y/n”);

String key=sc.nextLine();

if(key.equals(“y”)){

System.out.println(“信息信息发送中……”);

try{

cl.sentMessage(mess);

}catch(Exception e){

e.printStackTrace();

}

}

else if(key.equals(“out”)){

this.goon=false;

}

}

public void run(){

while(this.goon==true){

String sst=””;

try{

sst=cl.receiveMessage();

}catch(Exception e){

e.printStackTrace();

}

if(sst.length()0){

System.out.println(sst);

}

try{

Thread.sleep(100);

}catch(InterruptedException e){

e.printStackTrace();

}

}

System.out.println(“聊天关闭!”);

}

}

Server.java

import java.net.*;

import java.util.*;

public class Server implements Runnable{

private String message;

boolean work=true;

byte tm=10;

String[] clomessage={“信息:正在断开网络连接.”,”.”,”.\n”,”信息:设置保存中……”,””,””,”完成\n”,”信息:欢迎下次使用\n”,”信息:完成\n”,”Goodbye!”};

public Server(){

new Thread(this).start();

System.out.println(“本程序为服务端Server”);

Scanner sc=new Scanner(System.in);

System.out.println(“输入命令out关闭服务器”);

String clo=sc.nextLine();

if(clo.equals(“out”)){

System.out.println(“正在关闭服务器……”);

setwork(false);

System.exit(0);

}

}

public static void main(String[] args){

new Server();

}

public void setwork(boolean bo)

{

this.work=bo;

}

public void setMessage(String str){

this.message=str;

}

public String getMessage(){

return this.message;

}

public void sentMessage(){

String mes=this.getMessage();

try{

DatagramSocket ds=new DatagramSocket();

DatagramPacket dp=new DatagramPacket(mes.getBytes(),mes.length(),InetAddress.getByName(“127.0.0.1”),2000);

DatagramPacket dp2=new DatagramPacket(mes.getBytes(),mes.length(),InetAddress.getByName(“127.0.0.1”),2001);

ds.send(dp);

ds.send(dp2);

ds.close();

System.out.println(“信息发送至:127.0.0.1:2000 127.0.0.1:2001”);

this.setMessage(“”);

}catch(Exception e){

e.printStackTrace();

}

}

public void receiveMessage() throws Exception{

try{

DatagramSocket ds=new DatagramSocket(1999);//表示哦自己的接收端口号是1999

byte[] buf=new byte[1024];

DatagramPacket dp=new DatagramPacket(buf,1024);

ds.receive(dp);

String str=new String(dp.getData(),0,dp.getLength());

if(str.length()0){

this.setMessage(str);

System.out.println(“信息:Server从”+dp.getAddress().getHostAddress()+”主机(端口号:”+dp.getPort()+”)收到信息:”+this.getMessage());

}

ds.close();

}catch(Exception e){

e.printStackTrace();

}

}

public void run(){

while(tm0){

if(work==false){

tm–;

System.out.print(clomessage[9-tm]);

}

try{

receiveMessage();//时刻接受信息

}catch(Exception e){

e.printStackTrace();

}

if(this.getMessage().length()0){//如果接收到信息则发送信息

try{

sentMessage();

}catch(Exception e){

e.printStackTrace();

}

try{

Thread.sleep(100);

}catch(InterruptedException e){

e.printStackTrace();

}

}

}

}

}

呵呵,请指教啊!

编写一个简单的TCP通信程序。服务器发送“你好我是服务器”,客户端接收该信息并显示在屏幕上。用Java写

1、服务器端

import java.io.DataOutputStream;

import java.io.IOException;

import java.net.ServerSocket;

import java.net.Socket;

public class SocketServer {

    private static final int PORT = 8088;

    public static void main(String[] args) {

        ServerSocket server = null;

        try {

            server = new ServerSocket(PORT);

            while (true) {

                Socket client = server.accept();

                new Thread(new Server(client)).start();

            }

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

}

class Server implements Runnable {

    private Socket client;

    public Server(Socket client) {

        this.client = client;

    }

    public void run() {

        DataOutputStream output = null;

        try {

            output = new DataOutputStream(client.getOutputStream());

            output.writeUTF(“你好我是服务器”);

        } catch (IOException e) {

            e.printStackTrace();

        } finally {

            try {

                if (output != null) output.close();

                output = null;

            } catch (IOException e) {}

        }

    }

}

2、客户端

import java.io.DataInputStream;

import java.io.IOException;

import java.net.Socket;

import java.net.UnknownHostException;

public class Client extends Socket {

    private static final int PORT = 8088;

    public static void main(String[] args) {

        Socket socket = null;

        try {

            socket = new Socket(“127.0.0.1”, PORT);

            DataInputStream in = new DataInputStream(socket.getInputStream());

            String res = in.readUTF();

            System.out.println(res);

            if (in != null) in.close();

        } catch (UnknownHostException e) {

            e.printStackTrace();

        } catch (IOException e) {

            e.printStackTrace();

        } finally {

            if (socket != null) {

                try {

                    socket.close();

                } catch (IOException e) {}

            }

        }

    }

}

java与C#进行TCP局域网通信,丢包严重,怎么解决

应该没有这样严重的。 TCP只有在网络很差的情况下会有些数据丢掉的。 你在局域网应该还不至于俄。

多办是没有处理粘包俄。人家还没有把数据发给你就读取了。读到就会是 00

定协议把。 很简单的俄。 如 包头+数据区域的长度+数据。

这样根据长度来解析数据就不会出现粘包了。

java tcp通讯只能接收客户端第一次传来的数据包

accpet会阻塞线程直到有客户端连接,你读取的代码必须要放到另一个线程里,第二次会走到accept就阻塞了还怎么读取

javatcp通信(JAVATCP通信)

javatcp通信的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于JAVATCP通信、javatcp通信的信息别忘了在本站进行查找喔。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月29日 03:21:43
下一篇 2024年3月29日 03:29:51

相关推荐

  • java实现多客户端通信,java客户端与服务器多次通信

    java实现多个客户端彼此之间通过服务器实现点对点的通信 首先为了方便调试,先创建一个界面用于显示客户端连接信息。其次基于javafx包写的一个简单界面,使用多线程实现多客户端与服务器进行通信。最后java项目内实现n个tcp客户端连接通信即可设计,安全便捷。 服务器告知双方对方的ip地址,并协调由哪一方主动连接。如 协调结果是: 把c2的地址告诉c1,让c…

    2024年5月22日
    4300
  • exceldde通信,通信表格

    同一台电脑的两个软件数据通信是采用什么方式的?基于VB怎么实现通信,用… 1、If TextLinkMode = vbNone Then Z = Shell(Excel, 4) 启动Microsoft Excel。TextLinkTopic = Excel|Sheet1 设置连接主题。TextLinkItem = R1C1 设置连接项目。 2、一…

    2024年5月17日
    5500
  • c语言终止子进程,c语言进程间通信

    怎么用C语言结束一个进程?求代码 1、语句终止整个程序:#includestdio.h然后使用 exit(0); 这个函数。 2、C语言用exit()语句可以终止整个程序。C语言中,exit()通常是用在子程序中用来终结程序用的,使用后程序自动结束,跳回操作系统。exit(0) 表示程序正常退出;exit(1)、exit(-1)表示程序异常退出。 3、结束自…

    2024年5月17日
    4100
  • 安卓java串口通信,安卓和单片机串口通信

    java串口通信 1、RXTX硬件原理中,串口是一个标准的通信接口,通常使用DB9或DB25连接器,它们包含了多条数据信号线和控制信号线,用于传输和控制数据的传输。而RXTX则是一种Java通讯库,可以实现串口的读写操作。 2、为了从RS485读取数据,由于暂时没有硬件设备,系统是win7,故采用Virtual Serial Port Drive(VSPD)…

    2024年5月16日
    4000
  • javatcp和udp,javatcp和udp的区别

    Java的多线程和网络UDP和TCP怎么理解?它们有什么联系? 不过UDP的速度是TCP比不了的,而且UDP的反应速度更快,QQ就是用UDP协议传输的,HTTP是用TCP协议传输的,不用我说什么,自己体验一下就能发现区别了。 TCP是面向连接,UDP面向非连接,资料不复制,在这里简单说下:\x0d\x0aTCP建立连接时需要传说的三次握手,服务端与客户端需要…

    2024年5月16日
    4500
  • linux通信程序的简单介绍

    linux系统的进程间通信有哪几种方式 第一种:管道通信 两个进程利用管道进行通信时,发送信息的进程称为写进程;接收信息的进程称为读进程。 无名管道通信 无名管道(pipe):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用,进程的亲缘关系通常是指父子进程关系。 常见的进程间的通信方式为7种:按照通信类型划分:1,共享存储系统…

    2024年5月15日
    3300
  • javatcp并发服务器,tcp并发服务器的基本流程

    用java做一个TCP服务器怎么样 1、java也勉强可以吧。能用C语言写的话,java不做考虑。 2、建立了连接的两个Socket是以IO流的方式进行数据交换的,Java提供了Socket类中的getInputStream()返回Socket的输入流对象,getOutputStream()返回Socket的输出流对象。 3、TCP是面向连接,UDP面向非连…

    2024年5月15日
    4200
  • java非阻塞通信原理,java nio非阻塞体现在哪

    求一份java自学学习线路图? 1、第二阶段——JavaWeb Web前端开发基础和框架、Servlet和JSP在Web后端的应用、Web后端开发相关专题、MVC和分层架构以及项目开发流程及CASE工具的使用等。 2、初级的有语法基础、面向对象思想。学习任何一门语言语法都是必须的,因为Java的接近自然语言,也是一种相对比较容易学的语言。同时面向对象编程更是…

    2024年5月15日
    4700
  • c语言设计通信软件,c语言交流软件

    用C语言编写一个同学通讯录管理软件 )要求:建立两个结构体数组(或链表、文件),包括至少5个用户的必要信息,能对数据进行补充、修改。执行一个具体的功能之后,程序将重新显示菜单。 用C语言.编写一个“通讯录管理系统”程序,通讯录信息包括姓名、工作单位、电话号码、QQ号码、等信息。通讯录信息用磁盘文件保存,要求程序包括如下功能。可以输入追加联系人记录。 一个通信…

    2024年5月15日
    4000
  • javatcp分包,socket分包处理

    北大青鸟java培训:网站开发有哪些常见的协议技术? 因此,互联网的协议就是TCP/IP,TCP/IP就是互联网的协议。 Vue.js就在两年前,很难想象Vue.js能够忍受迅猛发展的React系统的竞争。经过深思熟虑且久经时间考验的Angular是一回事,但是Vue…我们没想到这个开发环境成为前端技术工具列表中的佼佼者。 Java反射技术,是编…

    2024年5月14日
    4000

发表回复

登录后才能评论



关注微信