javasocket高级

Java socket

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.Socket;

/**

* 客户端

*

* @author Administrator

*/

public class Client {

public static void main(String[] args ) throws Exception {

Socket client = new Socket(“www.easyaq.com”, 8888);

InputStream fis = new FileInputStream(new File(“d:/table1.txt”));

OutputStream out = client.getOutputStream();

int n = 0;

while ((n = fis.read()) != -1) {

out.write(n);

}

fis.close();

out.close();

}

}

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.ServerSocket;

import java.net.Socket;

/**

* 服务器端

*

* @author Administrator

*/

public class Server {

public static void main(String[] args ) throws Exception {

ServerSocket server = new ServerSocket(8888);

Socket recive = server.accept();

InputStream in = recive.getInputStream();

OutputStream fos = new FileOutputStream(“d:/abc.txt”);

int n = 0;

while ((n = in.read()) != -1) {

fos.write(n);

}

fos.flush();

in.close();

fos.close();

}

}

java中的socket是什么意思?

所谓socket通常也称作”套接字”,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过”套接字”向网络发出请求或者应答网络请求。

以J2SDK-1.3为例,Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。

重要的Socket API:

java.net.Socket继承于java.lang.Object,有八个构造器,其方法并不多,下面介绍使用最频繁的三个方法,其它方法大家可以见JDK-1.3文档。

. Accept方法用于产生”阻塞”,直到接受到一个连接,并且返回一个客户端的Socket对象实例。”阻塞”是一个术语,它使程序运行暂时”停留”在这个地方,直到一个会话产生,然后程序继续;通常”阻塞”是由循环产生的。

. getInputStream方法获得网络连接输入,同时返回一个InputStream对象实例。

. getOutputStream方法连接的另一端将得到输入,同时返回一个OutputStream对象实例。

注意:其中getInputStream和getOutputStream方法均会产生一个IOException,它必须被捕获,因为它们返回的流对象,通常都会被另一个流对象使用。

2ServerSocket类例子编辑

package com.lanber.socket;

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.IOException;

import java.net.ServerSocket;

import java.net.Socket;

public class ServerDemo {

/**

* 注意:Socket的发送与接收是需要同步进行的,即客户端发送一条信息,服务器必需先接收这条信息,

* 而后才可以向客户端发送信息,否则将会有运行时出错。

* @param args

*/

public static void main(String[] args) {

ServerSocket ss = null;

try {

ss = new ServerSocket(8888);

//服务器接收到客户端的数据后,创建与此客户端对话的Socket

Socket socket = ss.accept();

//用于向客户端发送数据的输出流

DataOutputStream dos = new DataOutputStream(socket.getOutputStream());

//用于接收客户端发来的数据的输入流

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

System.out.println(“服务器接收到客户端的连接请求:” + dis.readUTF());

//服务器向客户端发送连接成功确认信息

dos.writeUTF(“接受连接请求,连接成功!”);

//不需要继续使用此连接时,关闭连接

socket.close();

ss.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

3客户端的例子编辑

package com.lanber.socket;

importjava.io.DataInputStream;

import java.io.DataOutputStream;

importjava.io.IOException;

import java.io.OutputStream;

import java.net.Socket;

import java.net.UnknownHostException;

public class ClientDemo {

/**

* @param args

*/

public static void main(String[] args) {

Socket socket = null;

try {

socket = new Socket(“www.easyaq.com”,8888);

//获取输出流,用于客户端向服务器端发送数据

DataOutputStream dos = new DataOutputStream(socket.getOutputStream());

//获取输入流,用于接收服务器端发送来的数据

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

//客户端向服务器端发送数据

dos.writeUTF(“我是客户端,请求连接!”);

//打印出从服务器端接收到的数据

System.out.println(dis.readUTF());

//不需要继续使用此连接时,记得关闭哦

socket.close();

} catch (UnknownHostException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

java socket网络编程

//==============Server.java=================//

import java.io.IOException;

import java.net.ServerSocket;

import java.net.Socket;

public class Server {

public static void main(String[] args) throws IOException {

ServerSocket s = new ServerSocket(12345);

System.out.println(“服务器就绪,请启动客户端.”);

Socket so = s.accept();

byte[] buff = new byte[1024];

int read = so.getInputStream().read(buff);

String[] abc=new String(buff,0,read).split(“\\D+”);

int a = Integer.parseInt(abc[0]);

int b = Integer.parseInt(abc[1]);

int c = Integer.parseInt(abc[2]);

if(!cbt(a,b,c))

so.getOutputStream().write(“输入的数据无法组成三角形.”.getBytes());

else

so.getOutputStream().write(getArea(a,b,c).getBytes());

so.getOutputStream().flush();

so.close();

s.close();

}

private static String getArea(int a, int b, int c) {

float s = (a+b+c)/2f;

return “面积: “+Math.sqrt(s*(s-a)*(s-b)*(s-c));

}

private static boolean cbt(int a, int b, int c) {

return a0b0c0a+bcb+caa+cb;

}

}

//=================Client.java======================//

import java.io.IOException;

import java.net.Socket;

import java.net.UnknownHostException;

public class Client {

public static void main(String[] args) throws UnknownHostException, IOException {

System.out.println(“输入三角形的三边并用逗号隔开,如: (3,4,5) “);

byte[] buff=new byte[64];

int r = System.in.read(buff);

String ipaddr = “www.easyaq.com”;//根据情况改变,在本机调试就不改了

Socket so = new Socket(ipaddr,12345);

so.getOutputStream().write(new String(buff,0,r).getBytes());

r = so.getInputStream().read(buff);

so.close();

String rs = new String(buff,0,r);

System.out.println(rs);

}

}

//先启动Server,再启动Client

javasocket高级

java socket有什么作用

socket 用来写网络通讯程序的,简单来说在远程机器,和本地机器各建一个socket,然后进行连接通讯即可。

QQ什么的都网络通讯都是采用socket来写的。

有兴趣的话看看网络编程(非Web网络编程)方面的书

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

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

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月26日 10:34:43
下一篇 2024年3月26日 10:47:00

相关推荐

  • javasocket释放,java里socket

    Java程序为什么需要数据库连接池麻烦告诉我 数据库连接是一件费时的操作,连接池可以使多个操作共享一个连接数据库连接池的基本思想就是为数据库连接建立一个缓冲池。 基本概念及原理 由上面的分析可以看出,问题的根源就在于对数据库连接资源的低效管理。我们知道,对于共享资源,有一个很著名的设计模式:资源池 (Resource Pool)。该模式正是为了解决资源的频繁…

    2024年5月23日
    3600
  • 包含越界黑客学习励志图片高级的词条

    求一些黑客之类的图片,头像,, 1、现年35岁的美国著名黑客巴纳拜·杰克(见图)在2010年“黑帽”黑客会议上利用他独创黑客技术令自动提款机狂吐钞票,一跃成为全球最牛的“明星黑客”。 2、你可以在以下网站找到简单耐看的头像图片: Unsplash:这个网站提供了高质量的照片和头像图片,你可以直接搜索“头像”来找到自己喜欢的图片。 Pexels:这也是提供高质…

    2024年5月23日
    3900
  • excel高级工具箱2010,电脑高级工具在哪里

    excel表格如何导出工作表标签 1、点视图——工具栏——工具控制箱,在工具控制箱内单击命令按钮。然后在工作表任意位置画出个按钮,然后双击该按钮,出现了编辑代码界面。 2、打开EXCEL,点击工作表-汇总表左侧行和列的交汇点选中整个汇总表工作表,如图。按Ctrl+C或者鼠标单击右键,在弹出的右键菜单栏选中“复制”选项。 3、进入的工作区的一个表格,点击右上角…

    2024年5月22日
    4700
  • 黑客技术学习励志头像高级,黑客技术大全

    怎样才能称为一名黑客? 永远不要停止学习 学习永远都是成功的关键。不断的学习和实践将使你成为最好的黑客。保持对安全的关注,时刻为自己充电,学习和了解最新的入侵技术。1 加入黑客圈子 对一名黑客来说,最重要的是加入社区或论坛。 必须保持学徒的心:一个真正的大师永远都保持一颗学徒的心。胜不骄,败不垒才是一名真正的学习者应有的品质。 自由就是好 态度不能替代能力 …

    2024年5月22日
    5300
  • 黑客学习励志头像高级,黑客头像图片大全

    学霸的头像都是怎样的 文字型:直接简单了当的文字激励自己或者用文字立个flag,让自己看着头像就能元气满满。动漫型:男生比较喜欢外表美丽的物体,或者是人。而且也喜欢将自己打扮的很漂亮,帅气像动漫人物一样。 学霸的头像都是古代名人。1,苏秦,战国时的学霸,刺股悬梁之一,夜以继日地读书,实在太累了,就用锥子刺腿来使头脑清醒。 和自己行业相关的 很多学霸比较注重个…

    2024年5月22日
    3700
  • java面试高级,高级java 面试

    Java面试技巧和常用问题解答 1、两种方式:java.lang.Thread类的实例就是一个线程但是它需要调用java.lang.Runnable接口来执行,由于线程类本身就是调用的Runnable接口所以你可以继承java.lang.Thread类或者直接调用Runnable接口来重写run()方法实现线程。 2、在Java面试中,很大程度上,你能不能赢…

    2024年5月22日
    4200
  • javasocket工具类,java socket工具类

    通过Java中的Socket技术编写能够进行双向通信的客户端和服务器,为了能… 1、Socket编程:使用Socket可以在客户端和服务器之间建立TCP连接,实现双方之间的实时通信。Java提供了Socket类和ServerSocket类,可用于实现Socket编程。 2、java编程对于Socket之间的通信过程如下:服务端往Socket的输出…

    2024年5月22日
    6300
  • linux高级程序开发,linux开发工程师

    Linux高级程序设计的编辑推荐 1、ANSIC文件I/O管理、POSIX文件I/O管理、文件及目录管理、进程管理、UNIX进程间通信机制、SystemV进程间通信、多线程编程、线程间通信机制和LinuxSocket网络编程相关内容及实例开发。 2、linux内核最经典的书是《深入理解Linux内核》,这本书内核编程看;如果你是搞UNIX/Linux环境下的…

    2024年5月22日
    3400
  • 高级黑客需要学习什么,高级黑客技术

    黑客是怎样练成的? 学习密码技术 作为一名优秀的黑客,密码技术也是不可或缺的。加密与解密都是重要的黑客技能,它在各种信息系统安全技术,如身份验证和数据完整和保密等方面,都有着极为广泛的应用。 要有从解决问题,磨练技术,锻炼智力中得到基本的热望。如果你还不是这类人又想做黑客,你就要设法成为这样的人。否则你会发现,你的黑客热情会被其他诱惑无情地吞噬掉&#8212…

    2024年5月22日
    3600
  • 关于百度黑客学习好物图片高级的信息

    推荐男主角穿越到古代的电视剧,越多越好。 电视剧《赘婿》改编自阅文集团起点中文网作家愤怒的香蕉同名小说,由邓科执导,郭麒麟 、宋轶领衔主演,蒋依依、高曙光等人主演,朱珠特别出演,张若昀、田雨友情出演的商战题材穿越古装剧。 《魔幻手机》是由余明生、吴国栋执导,九年编剧,李滨、舒畅、焦恩俊领衔主演的科幻穿越神话剧。该剧于2008年4月8日在中央电视台电视剧频道首…

    2024年5月22日
    4300

发表回复

登录后才能评论



关注微信