Java网络编程-JavaSocket编程是什么呢?

Socket传输模式

Sockets有两种主要的操作方式:面向连接的和无连接的。面向连接的sockets操作就像一部电话,他们必须建立一个连接和一人呼叫。所有的事情在到达时的顺序与它们出发时的顺序时一样。

无连接的sockets操作就像是一个邮件投递,没有什么保证,多个邮件可能在到达时的顺序与出发时的顺序不一样。

Javasocket入门编程是什么?

java原文件: import java。net。*; import java。io。*; public class ServerApp { public static void main(String args[]) { try { boolean flag=true; Socket clientSocket=null; String inputLine; int c; ServerSocket sSocket=new ServerSocket(8018); System。

java中的socket编程是作什么的

Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一。如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的。本文会介绍一下基于TCP/IP的Socket编程,并且如何写一个客户端/服务器程序。

方法/步骤

Java中的socket编程 下面的部分将通过一些示例讲解一下如何使用socket编写客户端和服务器端的程序。 注意:在接下来的示例中,我将使用基于TCP/IP协议的socket编程,因为这个协议远远比UDP/IP使用的要广泛。并且所有的socket相关的类都位于java.net包下,所以在我们进行socket编程时需要引入这个包。

写入数据 接下来就是写入请求数据,我们从客户端的socket对象中得到OutputStream对象,然后写入数据后。很类似文件IO的处理代码。

打开服务器端的socket

读取数据 通过上面得到的socket对象获取InputStream对象,然后安装文件IO一样读取数据即可。这里我们将内容打印出来。

使用socket实现一个回声服务器,就是服务器会将客户端发送过来的数据传回给客户端。B/S方向的学Socket干什么,没有必要。

如果你需要自己做一个服务器,比如Tomcat,那么学习一下好了。

B/S Java方面,就去学 J2EE相关技术,JSP ,Servlet, EJB, Hibernate(iBatis),Struts/JSF,Web Services,XML,等等。

不要花精力到Socket上。socket是网络通讯编程常用的,建议掌握。没事了看看也好

再看看HTTP协议

自己做个简单的web服务器玩玩

对以后提高会有帮助相对于C++而言,JAVA在网络方面的优势还是还行的,建议学下。

Java编程,利用Socket和ServerSocket编程。

哎。。。加分都没有。。。

算了吧。。

服务器端:

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.ServerSocket;

import java.net.Socket;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextArea;

class wangluo1 extends JFrame implements ActionListener {

JFrame frame = new JFrame();

JPanel panel1 = new JPanel();

JPanel panel2 = new JPanel();

JTextArea text1 = new JTextArea(30, 30);

//JTextArea text2 = new JTextArea(3, 25);

JButton sent = new JButton("转换");

InputStream in;

OutputStream out;

Socket client;

ServerSocket server;

String str;

String newStr = "";

public wangluo1() {

add("South", panel2);

add(panel1);

panel1.add(text1);

panel2.setLayout(new FlowLayout());

//panel2.add(text2);

panel2.add(sent);

sent.addActionListener(this);

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

//try {

//in.close();

//out.close();

//} catch (IOException e1) {

TODO Auto-generated catch block

//e1.printStackTrace();

//}

System.exit(0);

}

});

pack();

setVisible(true);

this.setTitle("服务器:");

try {

server = new ServerSocket(10000);

client = server.accept();

in = client.getInputStream();

out = client.getOutputStream();

text1.append("已连接"+"\n");

} catch (IOException ioe) {

while (true) {

try {

byte[] buf = new byte[256];

in.read(buf);

str = new String(buf);

text1.append("客户端说:" + "\n" +str.trim());

text1.append("\n");

} catch (IOException e) {

}

public static void main(String[] args) {

new wangluo1();

public void actionPerformed(ActionEvent e) {

try {

for(int i=str.length()-1;i>=0;i--){

newStr = newStr + str.charAt(i);

}

byte[] buf = newStr.getBytes();

//text2.setText("");

out.write(buf);

out.flush();

//text1.append("服务器说:"+"\n" + s + "\n");

} catch (IOException ie) {

客户端:

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.Socket;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextArea;

public class wangluo2 extends JFrame implements ActionListener {

JFrame frame = new JFrame();

Socket client;

OutputStream os;

InputStream is;

String s;

JTextArea text3 = new JTextArea(30, 30);

JTextArea text4 = new JTextArea(3, 25);

JPanel panel1 = new JPanel();

JPanel panel2 = new JPanel();

JButton clientsent = new JButton("发送");

public wangluo2() {

add("South", panel2);

add(panel1);

panel1.add(text3);

panel2.setLayout(new FlowLayout());

panel2.add(text4);

panel2.add(clientsent);

pack();

setVisible(true);

this.setLocation(500, 0);

this.setTitle("客户端");

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

//try {

//is.close();

//os.close();

//} catch (IOException e1) {

TODO Auto-generated catch block

//e1.printStackTrace();

//}

System.exit(0);

}

});

clientsent.addActionListener(this);

try {

client = new Socket("127.0.0.1", 10000);

text3.append("已连接"+"\n");

is = client.getInputStream();

os = client.getOutputStream();

} catch (IOException ioe) {

while (true) {

try {

byte[] buf = new byte[256];

is.read(buf);

String str = new String(buf);

text3.append("服务器说:" + "\n" + str.trim());

text3.append("\n");

} catch (IOException e) {

}

public static void main(String[] args) {

new wangluo2();

public void actionPerformed(ActionEvent e) {

try {

String str = text4.getText();

byte[] buf = str.getBytes();

text4.setText("");

os.write(buf);

os.flush();

text3.append("客户端说:"+"\n" + str + "\n");

} catch (Exception ee) {

}你这个不就是TCP的例子吗?我给你找找。

//: c15:JabberServer.java

// Very simple server that just

// echoes whatever the client sends.

// {RunByHand}

import java.io.*;

import java.net.*;

public class JabberServer {

// Choose a port outside of the range 1-1024:

public static final int PORT = 8080;

public static void main(String[] args)

throws IOException {

ServerSocket s = new ServerSocket(PORT);

System.out.println("Started: " + s);

try {

// Blocks until a connection occurs:

Socket socket = s.accept();

try {

System.out.println(

"Connection accepted: "+ socket);

BufferedReader in =

new BufferedReader(

new InputStreamReader(

socket.getInputStream()));

// Output is automatically flushed

// by PrintWriter:

PrintWriter out =

new PrintWriter(

new BufferedWriter(

new OutputStreamWriter(

socket.getOutputStream())),true);

while (true) {

String str = in.readLine();

if (str.equals("END")) break;

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

out.println(str);

}

// Always close the two sockets...

} finally {

System.out.println("closing...");

socket.close();

}

} finally {

s.close();

}

}

} ///:~

//: c15:JabberClient.java

// Very simple client that just sends

// lines to the server and reads lines

// that the server sends.

// {RunByHand}

import java.net.*;

import java.io.*;

public class JabberClient {

public static void main(String[] args)

throws IOException {

// Passing null to getByName() produces the

// special "Local Loopback" IP address, for

// testing on one machine w/o a network:

InetAddress addr =

InetAddress.getByName(null);

// Alternatively, you can use

// the address or name:

// InetAddress addr =

//InetAddress.getByName("127.0.0.1");

// InetAddress addr =

//InetAddress.getByName("localhost");

System.out.println("addr = " + addr);

Socket socket =

new Socket(addr, JabberServer.PORT);

// Guard everything in a try-finally to make

// sure that the socket is closed:

try {

System.out.println("socket = " + socket);

BufferedReader in =

new BufferedReader(

new InputStreamReader(

socket.getInputStream()));

// Output is automatically flushed

// by PrintWriter:

PrintWriter out =

new PrintWriter(

new BufferedWriter(

new OutputStreamWriter(

socket.getOutputStream())),true);

for(int i = 0; i < 10; i ++) {

out.println("howdy " + i);

String str = in.readLine();

System.out.println(str);

}

out.println("END");

} finally {

System.out.println("closing...");

socket.close();

}

} ///:~

javasocket编程(javasocket通信)相关推荐

  1. 高并发编程-线程通信_使用wait和notify进行线程间的通信2_多生产者多消费者导致程序假死原因分析

    文章目录 概述 jstack或者可视化工具检测是否死锁(没有) 原因分析 概述 高并发编程-线程通信_使用wait和notify进行线程间的通信 - 遗留问题 我们看到了 应用卡住了 .... 怀疑是 ...

  2. 信捷plc485通信上位机_三菱FX3U编程口通信上位机QT实现

    三菱FX3U编程口通信上位机软件 上位机开发流程: 一 查找类似工具 找到 三菱FX串口实验(FX Serial) 这款工具 这款工具挺好用的,能够验证大多数的功能,而且能够看到发送和接收的报文,是一 ...

  3. 基于QT的【第一个项目】设计+所有组件配合使用+网络编程局域网通信+文件IO操作+登录界面和头像+多界面跳转+JSON数据解析+表情包制作

    基于QT的第一个项目+所有组件配合使用+网络编程局域网通信+文件IO操作+登录界面和头像+多界面跳转+JSON数据解析+表情包制作 第一阶段 网络编程局域网TCP/IP聊天QT实现 main.c ma ...

  4. java socket 通信协议_java 基于TCP协议的Socket编程和通信

    java 基于 TCP 协议的 Socket 编程和通信 在网络通讯中,第一次主动发起通讯的程序被称作客户 端 (Client) 程序, 简称客户端, 而在第一次通讯中等待连接的 程序被称作服务器端 ...

  5. Java SE基础知识详解第[18]期—网络编程(通信)

    写在前面: 每一个不曾起舞的日子,都是对生命的辜负. 希望看到这里的每一个人都能努力学习,不负韶华,成就更好的自己. 以下仅是个人学习过程中的一些想法与感悟,Java知识博大精深,作为初学者,个人能力 ...

  6. 【Java高级】初探socket编程 ——JavaSocket连接与简单通信

    新学期生活开始一段时间了,要继续学习一些新的技术(这里指socket /doge),目标是尝试完成一个在线即时聊天的小程序(尽量不咕).会更新一系列socket编程的技术文章,欢迎关注交流~ 那么千里 ...

  7. Java SE学习之【网络编程JavaSocket】

    一.网络基础了解 1.网络架构模型 网络架构模型主要有OSI参考模型和TCP/IP五层模型 OSI定义了网络互连的七层框架(物理层.数据链路层.网络层.传输层.会话层.表示层.应用层) TCP/IP五 ...

  8. Java---Socket编程UDP/TCP

    socket方便了应用程序访问通讯协议TCP/IP . socket是作为通讯链入的端点.我们可以吧套接字看成是电话机,有了套接字,才有了通讯的工具.我们可以吧IP地址看成是电话号码,端口号看成是分机 ...

  9. javaSocket与C通信

    前段时间写了个web端与C服务端之间的通信不过用的是短连接 非堵塞的方式,一直想使用长连接,使tomcat启动的时候就和C服务端进行通信,但是一直没找到方法希望je的朋友能给点思路.先来看我现在的具体 ...

  10. 【JavaSocket编程】实现P2P客户端与服务器端双向传输数据(附代码)

    先看实现效果: 核心思想: 1使用socket建立连接 2客户端和服务器端分别创建两个进程,通过soccket来进行数据的发送和接收 话不多说,直接上代码 #客户端 package test; imp ...

最新文章

  1. redis延迟消息队列不准时php,Redis实现延迟消息队列
  2. JVM系列之内存泄漏
  3. 用最简单的例子说明设计模式(三)之责任链、建造者、适配器、代理模式、享元模式...
  4. python查看图像通道数(通过PIL)
  5. 大数据之-Hadoop3.x_MapReduce_WordCount案例_Debug调试---大数据之hadoop3.x工作笔记0092
  6. 电脑摄像头未能创建连接服务器,Win7摄像头提示"未能创建视频预览"的原因及解决方法...
  7. 七种机器内部排序的原理与C语言实现,并计算它们的比较次数与移动次数。
  8. VSCode Debug API
  9. web myeclipse为什么连接不上css_好程序员web前端培训分享:web前端自学该怎么规划学习...
  10. CASS10.1软件在windows10中细等线等字体显示不出来的解决方案
  11. 【项目】STC15W408AS--烧写、数码管、按键、串口通信、ADC
  12. 【线上活动】材料计算训练营(量子力学、物理、化学、新能源、碳中和、生物制药、化工、新材料、催化、锂电池、半导体)
  13. 红帽 linux 安装,linux (红帽)如何安装?
  14. [Perl] Data::Dumper模块的用法简介
  15. Flash制作雾效果
  16. 如何成为一名数据科学家?
  17. at91sam9260 OpenWRT u-boot移植
  18. HTML+CSS学习笔记(篇幅较大)
  19. 10个有关快门的必学知识
  20. Java *2.22(财务应用:货币单位)改写程序清单2-10,解决将double转int可能会造成精度损失问题。以整数值作为输入,其最后两位代表的是美分币值。例如:1156就表示11美元56美分。

热门文章

  1. WS2 安装ubuntu +迁移+vscode
  2. xmind转excel脚本(简化版)
  3. ELman神经网络matlab实现
  4. 软件开发中协议制定的注意事项
  5. WAS中间件服务器简介
  6. Windows远程桌面单/多用户同时登录
  7. 电力电子技术笔记-逆变电路
  8. 数据结构考研:线性表,顺序表,有序表,链表,数组的概念的区别与联系(软件工程/计算机/王道论坛)
  9. plsql 破解注册码
  10. GPS模块编程之NMEA0183协议