「java连接socket」Java连接oracle数据库

博主:adminadmin 2022-12-23 07:21:08 93

本篇文章给大家谈谈java连接socket,以及Java连接oracle数据库对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java关于socket多连接

因为没有客户端连接或者没有服务器端支持。。。。 最好写个死循环,来等待客户端的连接,用服务器端用线程做,分别做客户端和服务器端, 然后先开启服务器端 来等待连接,然后开启客户端。。否则就会出错。

java Socket通信原理

具体如下:

首先socket 通信是基于TCP/IP 网络层上的一种传送方式,我们通常把TCP和UDP称为传输层。其中UDP是一种面向无连接的传输层协议。UDP不关心对端是否真正收到了传送过去的数据。

如果需要检查对端是否收到分组数据包,或者对端是否连接到网络,则需要在应用程序中实现。UDP常用在分组数据较少或多播、广播通信以及视频通信等多媒体领域。

在这里我们不进行详细讨论,这里主要讲解的是基于TCP/IP协议下的socket通信。

socket是基于应用服务与TCP/IP通信之间的一个抽象,他将TCP/IP协议里面复杂的通信逻辑进行分装。

服务端初始化ServerSocket,然后对指定的端口进行绑定,接着对端口及进行监听,通过调用accept方法阻塞。

此时,如果客户端有一个socket连接到服务端,那么服务端通过监听和accept方法可以与客户端进行连接。

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。

Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

java建立socket连接

Scanner sc = new Scanner(System.in);

String ip = sc.next();

String port = sc.next();

Socket socket = new Socket(ip,port);

java的socket通信

socket=server.accept();这句话会造成线程阻塞,程序将在这句话停止运行,直到有连接请求

reader=new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8"));这句话只是定义了一个读取Socket缓冲区数据的接口,并没有实际读取数据

getMessage();这句话是读取Socket缓冲区数据的操作方法,程序将在这句话停止运行,直到有数据被读到

所以尽管放心运行JAVA程序,当客户端发出数据,并且服务端接收到后,程序才会从getMessage();继续运行下去

java中如何创建socket连接的过程

这是我写过的一个简单聊天软件客户端  你参考下

import java.util.*;

import java.io.*;

import java.net.*;

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

public class testChatClient extends JFrame

{

private JTextArea jta = new JTextArea();

private JTextField jtf = new JTextField();

private JComboBoxString jcb = new JComboBoxString();

private JButton jbsend = new JButton("send");

private JButton jbrefresh = new JButton("refresh");

private InputStream input;

private OutputStream output;

private Socket socket;

public static String SERVER_IP = "192.168.1.101";

public static int SERVER_PORT = 8888;

// Message 1 - refresh message

// Message 2 - send message

public testChatClient()

{

initComponents();

try

{

socket = new Socket(SERVER_IP,SERVER_PORT);

input = socket.getInputStream();

output = socket.getOutputStream();

}

catch(IOException e)

{

System.err.println(e);

}

jbrefresh.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

jta.setText("");

try

{

if(socket == null)

socket = new Socket(SERVER_IP,SERVER_PORT);

output.write(0x31);

catch (IOException ex)

{

JOptionPane.showConfirmDialog(null, ex);

}

}

});

jbsend.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

if(jtf.getText() == null || jtf.getText().equals(""))

return;

if(jtf.getText().length() = 400)

{

JOptionPane.showConfirmDialog(null,"最大字数不能超过400");

return;

}

try

{

String destination = jcb.getSelectedItem().toString();

String message = jtf.getText();

if(socket == null)

socket = new Socket(SERVER_IP,SERVER_PORT);

byte[] temp = new byte[3 + destination.getBytes().length + message.getBytes().length];

temp[0] = 0x32;

temp[1] = (byte)destination.getBytes().length;

int i = 2;

for(int j = 0; j  destination.getBytes().length ; i++ , j++)

temp[i] = destination.getBytes()[j];

temp[i++] = (byte)message.getBytes().length;

for(int j = 0 ; j  message.getBytes().length ; i++ , j++)

{

temp[i] = message.getBytes()[j];

System.out.println();

}

output.write(temp);

jta.append("me:\n");

jta.append(jtf.getText());

jta.append("\n");

jtf.setText("");

}

catch(IOException ex)

{

System.err.println(ex);

}

}

});

try

{

jbrefresh.doClick();

while(true)

{

byte[] tempBytes = new byte[1000];

input.read(tempBytes);

int command = tempBytes[0] - 0x30;

// int readLength = input.read();

switch(command)

{

case 1:

{

int readLength = tempBytes[1];

String[] temp = new String(tempBytes,2,readLength,"UTF-8").split(";");

jcb.removeAllItems();

if(temp.length == 0  temp[0].equals(""))

return;

for(int i = 0 ; i  temp.length ;i++)

{

jcb.addItem(temp[i]);

}

jcb.setSelectedIndex(0);

break;

}

case 2:

{

int readLength1 = tempBytes[1];

jta.append(new String(tempBytes,2,readLength1,"UTF-8") + "\n");

int readLength2 = tempBytes[2 + readLength1];

jta.append(new String(tempBytes,3 + readLength1,readLength2,"UTF-8") + "\n");

break;

}

}

}

}

catch(IOException e)

{

System.err.println(e);

}

}

public static void main(String[] args) {

testChatClient frame = new testChatClient();

}

public void initComponents()

{

setLayout(new BorderLayout());

JPanel jpNorth = new JPanel();

jpNorth.setLayout(new BorderLayout());

jpNorth.add(jcb,BorderLayout.CENTER);

jpNorth.add(jbrefresh,BorderLayout.EAST);

JPanel jpSouth = new JPanel();

jpSouth.setLayout(new BorderLayout());

jpSouth.add(jtf,BorderLayout.CENTER);

jpSouth.add(jbsend,BorderLayout.EAST);

add(jpNorth,BorderLayout.NORTH);

add(jpSouth,BorderLayout.SOUTH);

add(new JScrollPane(jta),BorderLayout.CENTER);

this.getRootPane().setDefaultButton(jbsend);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setSize(300,600);

setVisible(true);

}

}

关于java连接socket和Java连接oracle数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-23,除非注明,否则均为首码项目网原创文章,转载请注明出处。