资源简介
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。
代码片段和文件信息
package ChessGame;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.ArrayList;
import javax.swing.Jframe;
import javax.swing.JOptionPane;
import javax.swing.Timer;
import util.CloseUtil;
import util.GameUtil;
public class ChessGame1 extends Jframe implements MouseListener {
private int blackcount = 0;//记录赢的局数
private int whitecount = 0;
private boolean flag = true;
private boolean whitewin;
public BufferedReader console;
public static DataOutputStream dos;//接收输出
public boolean isRunning = true;
private boolean flash = false;
public boolean tp = true;
public static DataInputStream dis;//接收输入
public int ax = 0;
public int ay = 0;
public Timer time;
private ArrayList blacklist;
private ArrayList whitelist;
public ChessGame1() throws UnknownHostException IOException {
settitle(“五子棋“);
setSize(700 750);
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
blacklist = new ArrayList();
whitelist = new ArrayList();
this.addMouseListener(this);// 增加鼠标监听器
new Thread(new Runnable() {// 接收坐标线程
@Override
public void run() {
while (isRunning) {
tp=true;
try {
ax = dis.readInt();
ay = dis.readInt();
if (ax != 0 && flag == false) {
tp=!tp;
whitelist.add(new mypoint(ax ay));
repaint();
} else if (ax != 0 && flag == true) {
tp=!tp;
blacklist.add(new mypoint(ax ay));
repaint();
}
} catch (IOException e2) {
// TODO 自动生成的 catch 块
// e.printStackTrace();
isRunning = false;
CloseUtil.closeAll(dis);
}
}
}
}).start();
;
}
@Override
public void paint(Graphics g) {// 绘图
flag = !flag;
if (flash == true) {
super.paint(g);
}
g.setColor(new Color(180 150 100));
g.fillRect(0 0 700 750);
g.setColor(Color.black);
flash = false;
for (int i = 2; i <= 30; i++) {
g.drawLine(40 20 * i 600 20 * i);// 横线
g.drawLine(20 * i 40 20 * i 600);// 竖线
}
Image img = GameUtil.getImage(“images/2.1.png“);
for (int i = 0; i < blacklist.size(); i++) {// 绘画黑棋
g.drawImage(img (int) blacklist.get(i).getX() * 20 + 12 (int) blacklist.get(i).getY() * 20 + 32 null);
}
Image img1 = GameUtil.getImage(“images/1.1.png“);
for (int i = 0; i < whitelist.size(); i++) {// 绘画白棋
g.drawImage(img1 (int) whitelist.get(i).getX() * 20 + 12 (int) whitelist.get(i).getY() * 20 + 32 null);
}
this.checkwin(blacklist 0 0 0 0);// 判断输赢
this.checkwin(whitelist 0 0 0 1);
g.setColor(Color.black);
Str
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-03-07 20:27 FiveChess1.1\
文件 301 2018-03-07 20:27 FiveChess1.1\.classpath
文件 388 2018-03-07 20:27 FiveChess1.1\.project
目录 0 2018-03-07 20:27 FiveChess1.1\.settings\
文件 598 2018-03-07 20:27 FiveChess1.1\.settings\org.eclipse.jdt.core.prefs
目录 0 2018-03-07 20:27 FiveChess1.1\bin\
目录 0 2018-03-07 20:27 FiveChess1.1\bin\ChessGame\
文件 1513 2018-03-07 20:27 FiveChess1.1\bin\ChessGame\ChessGame1$1.class
文件 8370 2018-03-07 20:27 FiveChess1.1\bin\ChessGame\ChessGame1.class
文件 517 2018-03-07 20:27 FiveChess1.1\bin\ChessGame\mypoint.class
目录 0 2018-03-07 20:27 FiveChess1.1\bin\images\
文件 684 2018-03-07 20:27 FiveChess1.1\bin\images\1.1.png
文件 846 2018-03-07 20:27 FiveChess1.1\bin\images\2.1.png
目录 0 2018-03-07 20:27 FiveChess1.1\bin\net\
目录 0 2018-03-07 20:27 FiveChess1.1\bin\net\tcp\
文件 2504 2018-03-07 20:27 FiveChess1.1\bin\net\tcp\Server$MyChannel.class
文件 1397 2018-03-07 20:27 FiveChess1.1\bin\net\tcp\Server.class
目录 0 2018-03-07 20:27 FiveChess1.1\bin\util\
文件 637 2018-03-07 20:27 FiveChess1.1\bin\util\CloseUtil.class
文件 973 2018-03-07 20:27 FiveChess1.1\bin\util\GameUtil.class
目录 0 2018-03-07 20:27 FiveChess1.1\src\
目录 0 2018-03-07 20:27 FiveChess1.1\src\ChessGame\
文件 10531 2018-03-07 20:27 FiveChess1.1\src\ChessGame\ChessGame1.java
目录 0 2018-03-07 20:27 FiveChess1.1\src\images\
文件 684 2018-03-07 20:27 FiveChess1.1\src\images\1.1.png
文件 846 2018-03-07 20:27 FiveChess1.1\src\images\2.1.png
目录 0 2018-03-07 20:27 FiveChess1.1\src\net\
目录 0 2018-03-07 20:27 FiveChess1.1\src\net\tcp\
文件 2520 2018-03-07 20:27 FiveChess1.1\src\net\tcp\Server.java
目录 0 2018-03-07 20:27 FiveChess1.1\src\util\
文件 377 2018-03-07 20:27 FiveChess1.1\src\util\CloseUtil.java
............此处省略1个文件信息
相关资源
- socket通信 基于udp
- 华农网络编程socket通信
- Qt 下的udp socket通信
- 仿QQ版socket通信.rar仿QQ版socket通信.r
- 基于linux下用c编写的socket通信传输文
- Socket通信发送端向接收端发送图片D
- socket通信 server对client client对client
- Socket通信实现多人聊天应用
- Socket通信.zip
- ios-Socket通信.zip
- linux下多线程socket通信完整源码文件
- Socket通信,通过异步,解决粘包问题
- 中南大学实验:SOCKET通信UDP协议-发送
- linux环境下基于socket通信的ftp系统
- socket连接传送数据,控制家电led
- 基于QT5编写的TCP SOCKET通信小demo程序,
- 树莓派使用python与云服务器进行sock
- Qt5 UDP Socket通信源码
- VC实现多线程socket通信
评论
共有 条评论