一.通信中常用到的命令行命令
1.查看你的电脑与其他服务器的连接信息-->>netstat -an
当你在命令行中输入netstat -an 并回车后会出现如图所示的界面:
其中:
第一列 | | 第二列 | | 第三列 | | 第四列 | 协议是 TCP 还是 UDP | | 本地地址由IP和端口组成 | | 目标机器地址由IP和端口组成 | | 连结状态 |
2.检查目标网站是否与本机是否可以连接也就是所谓的是否可以ping的通
当你在命令行中输入ping taobao.com(仅仅是一个例子只要ping 后面是网址或者是IP地址)
回车后会看到
3.连接某网站telnet
如:telnet taobao.com 80 回车
其中taobao.com为网址也可以为IP地址 80代表端口且为默认的端口
4.查看本机与目标服务器之间经过多少服务器-->>tracert
当你在命令行中输入tracert taobao.com并回车后命令行中就会显示
途中经过多少个服务器并将服务器的IP地址输出
二.实现编译器向命令行发送信息
代码如下:
/**
* 简单通信只实现了从代码中向命令行中发送一条信息
*
* @author:Andrew
*/
public class ChatServer(){
//主函数
public static void main(String[] args){
ChatServer chat = new ChatServer();
chat.setUpServer(8000);
}
/**
* 启动服务器
* @param port:端口
*/
private void setUpServer(int port){
try{
//建立指定端口的服务器
ServerSocket server = new ServerSocket(port);
Socket client = server.acceept();
OutputStream out = client.getOutputStream();
String str = "我的第一个通信项目";
byte[] data = str.getBytes();
out.write(data);
out.flush();
client.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
运行上面的代码然后再打开命令行
输入:telnet localhost 8000
回车后即可看到命令行输出:我的第一个通信项目
如果打开命令行输入:telnet localhost 8000
回车后被告知不是内部命令
请打开"我的电脑"在搜索中搜索telnet然后将 telnet.exe
拷贝到C:\Windows\System32 目录下即可
三.实现命令行与java编译软件间的通信仅以Eclipse为例
代码如下:
package threadTalk;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
/**
* 多个命令行聊天的入口
* @author Andrew
*
*/
public class Main {
/**
* 主程序
*/
public static void main(String[] args) {
Main m = new Main();
m.setUpServer(9090);
}
/**
* 启动一个服务器
* @param port 端口号
*/
private void setUpServer(int port){
try {
//建立服务器对象
ServerSocket server = new ServerSocket(port);
System.out.println("端口:"+port);
while(true){
Socket socket = server.accept();
ServerThread st = new ServerThread(socket);
st.start();
System.out.println("启动线程!");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
package threadTalk;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
/**
* 聊天线程类
* 功能:在命令行中实现多人聊天
* @author Andrew
*
*/
public class ServerThread extends Thread{
private Socket socket;
public ServerThread(Socket socket){
this.socket = socket;
}
public void run(){
this.sendAndGetInfo();
}
/**
* 发送并接收信息
*/
private void sendAndGetInfo(){
try {
//获得输入流对象
InputStream input = socket.getInputStream();
String s = "你好!\n";
this.sendInfo(s);
String inputStr = this.getInfo(input);
while(!"bye".equals(inputStr)){
s = "你的话语:"+inputStr+"\n";
this.sendInfo(s);
inputStr = this.getInfo(input);
}
s = "欢迎再来!";
this.sendInfo(s);
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 向命令行发送信息的方法
* @param str 要发送的信息
*/
private void sendInfo(String str){
try {
OutputStream out = socket.getOutputStream();
out.write(str.getBytes());
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 从另一个命令行中读取信息
* @param input 基本输入流
* @return 读取到的信息
* @throws IOException
*/
private String getInfo(InputStream input) throws IOException{
//创建字符串缓冲区
StringBuffer buffer = new StringBuffer();
//读取的字节
int read_Info = 0;
while(13 != read_Info){
read_Info = input.read();
char char_Info = (char)read_Info;
buffer.append(char_Info);
}
String str_Info = buffer.toString().trim();
return str_Info;
}
}
- 大小: 75 KB
- 大小: 40.8 KB
- 大小: 35.1 KB
分享到:
相关推荐
Java中Socket通信-服务端和客户端双向传输字符串实现示例代码。在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过 socket 这种约定,一台计算机可以接收其他计算机的...
在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过 socket 这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。 socket 的典型应用就是 ...
网络通信技术中socket通信技术是比较常用的一种,由于他比较灵活所以大部分项目都是用socket技术实现服务通信
Java Socket 聊天通信演示代码 Java Socket 聊天通信演示代码
在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过 socket 这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。 socket 的典型应用就是 ...
基于java的开发源码-Java Socket通信实现.zip 基于java的开发源码-Java Socket通信实现.zip 基于java的开发源码-Java Socket通信实现.zip 基于java的开发源码-Java Socket通信实现.zip 基于java的开发源码-Java ...
2个窗口分别模拟服务器端和客户端,基于TCP协议的socket通信,实现互相通信
用java 实现的一个socket通信程序,包括服务端和客户端俩个部分。代码注释很详细。
Java客户端,c++服务端通过socket进行网络通信,传输数据
聊天室的网络通信,socket实现,源码中采用127.0.0.1:9000,用时先开服务端,再开客户端
java即时通信界面本 有简单界面 带GUI
介绍Flash与JAVA的Socket通信
java Socket通信实现
Flex和java的socket通信 Flex和java的socket通信
C#和java的socket通信,系统刚好用到的,共享给需要的朋友,还有一中方式用网页的方式,下次再共享。
两者之间使用基于TCP的Socket通信方式。可是,做了一个测试小例子,结果从客户端传过来的都是乱码。于是上网查,希望可以找到解决方法,可是,网上有好多的答案,经过了很多的实验,都不能很好的解决。没办法只能靠...
主要介绍了Python与Java间Socket通信实例代码的相关资料,需要的朋友可以参考下
基于socket、mysql数据库和java组件、线程实现的qq基本通信
SpringMVC的Socket实现+Java Tomcat websocket实现+Java Socket通信实现 +Java UDP通信实现。websocket_study.rar 为springMVC版本的socket实现 websocket02.rar 里面包含tomcat的websocket实现+java socket双向通信...