socket示例代码演示程序(螺纹)

socket示例代码演示程序(螺纹)

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

client码,如以下:

import java.io.*;
import java.net.*;
public class DailyAdviceClient {
	public void go(){
			
		try {
			Socket s=new Socket("127.0.0.1",4242);//建立对server的Socket连接
			//client从server读取数据
			//建立连接到socket上低层输入串流的InputStreamReader
			//InputStreamReader是低层和高层串流间的桥梁
			//s.getInputStream()从Socket取得输入串流
			InputStreamReader streamReader=new InputStreamReader(s.getInputStream());
			//建立BufferedReader来读取
			BufferedReader reader=new BufferedReader(streamReader);
			String adviceString=reader.readLine();
			System.out.println("Today you should: "+adviceString);	
			//client向server发送数据	
			//创建不带自己主动行刷新的PrintWriter对象。
			//假设加入第二个參数true,则为自己主动刷新,不须要写writer.flush()这行代码	
			PrintWriter writer=new PrintWriter(s.getOutputStream());
			writer.println("Hello,I am Client2!");
			writer.flush();//刷新发送数据
			System.out.println("此套接字连接的远程地址:"+s.getInetAddress().getHostAddress());
			System.out.println("此套接字绑定的本地地址:"+s.getLocalAddress().getHostAddress());
			System.out.println("此套接字绑定的本地端口:"+s.getLocalPort());
			System.out.println("此套接字连接到的远程端口:"+s.getPort());
			s.close();//关闭socket
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	public static void main(String[]args){
		DailyAdviceClient client=new DailyAdviceClient();
		client.go();
	}
}

server端代码例如以下:

import java.io.*;
import java.net.*;
public class DailyAdviceServer {
	String[] adviceList={"Take smaller bites","One word: inappropriate",""
			+ "Just for today,be honest","Tell your boss"};
	public void go(){
		
		try {
			//服务器应用程序对特定port创建出ServerSocket对象
			//这会让服务器应用程序监听来自4242port的client请求
			ServerSocket serverSocket=new ServerSocket(4242);
			//服务器进入无穷循环等待client的请求
			while(true){
				System.out.println("等待client连接...");
				//接收到用户连接请求后。此方法会返回一个socket。以便于client通信
				//此socket的port号和serverSocket的port号不同
				Socket sock=serverSocket.accept();//此方法会堵塞直到有连接请求到达
				System.out.println("此套接字连接的地址:"+sock.getInetAddress().getHostAddress());
				System.out.println("此套接字绑定的本地地址:"+sock.getLocalAddress().getHostAddress());
				System.out.println("此套接字绑定的本地port:"+sock.getLocalAddress());
				System.out.println("此套接字连接到的远程port:"+sock.getPort());
				//服务器向client发送数据
				PrintWriter writer=new PrintWriter(sock.getOutputStream());
				String adviceString=getAdvice();
				writer.println(adviceString);
				writer.flush();
				System.out.println(adviceString);
				//服务器接收client发送的数据
				InputStreamReader streamReader=new InputStreamReader(sock.getInputStream());
				BufferedReader reader=new BufferedReader(streamReader);
				String adviceStringREC=reader.readLine();
				System.out.println("REC: "+adviceStringREC);			

			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	public String getAdvice(){
		int random=(int)(Math.random()*adviceList.length);
		return adviceList[random];
		
	}
	public static void main(String []args){
		DailyAdviceServer server=new DailyAdviceServer();
		server.go();
	}
}

版权声明:本文博客原创文章。博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117307.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • sql与hsql的区别以及分别怎么用!

    sql与hsql的区别以及分别怎么用!在java开发当中,会用到一些框架,比如说sh(struts和hibernate),ssh(struts,spring以及hibernate)等这些框架,hibernate因为连表方便,直接将表映射到java实体类中,因此用到的比较广泛,那sql和hsql区别在于哪里呢?又如何使用呢?1.java中用sql实现增删改查,sql是直接面向数据库的,下面附上一段代码解析:try{24…

    2022年9月22日
    4
  • 2021 idea 激活码_通用破解码

    2021 idea 激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    100
  • 理解目标检测中的mAP与F1 Score

    理解目标检测中的mAP与F1 Score文章目录总述IoUTP、TN、FP、FNPrecisionRecallF1-ScoremAPmAP计算过程:总述要理解mAP与F1Score需要一些前置条件,比如:IoU、FP、TP、FN、TN、AP等IoU衡量监测框和标签框的重合程度。一张图就能解释。TP、TN、FP、FNTP,即TruePositives,表示样本被分为正样本且分配正确。TN,即TrueNegatives,表示样本被分为样本且分配正确。FP,即FalsePositives,表示样本被分为正样本但分配错

    2022年10月14日
    3
  • DBA整理的万字详解MySQL性能优化,值得收藏![通俗易懂]

    DBA整理的万字详解MySQL性能优化,值得收藏!

    2022年2月19日
    47
  • stimulsoft mysql_Stimulsoft Server

    stimulsoft mysql_Stimulsoft ServerStimulsoftReports.Server是一个客户服务器系统,允许您轻松、高效地使用报表实现完整的工作周期,包括从执行信息处理任务的设计和自动化到为用户准备便利的结果演示。快速和现代化的StimulsoftReports技术实现了报表模块的功能,并且灵活性和可靠性都经过了测试。StimulsoftReports.Server的特性概括:使用图形元素和不同的图表可以将通用数据源转换为明亮和…

    2022年7月26日
    5
  • Spring过滤器和拦截器的区别[通俗易懂]

    Spring过滤器和拦截器的区别[通俗易懂]Spring过滤器和拦截器的区别 两者的作用 过滤器:是在javaweb中,你传入的request、response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的action进行业务逻辑,比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者struts的action前统一设置字符…

    2022年8月23日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号