1. 撰寫程式
開啟主程式輸入10筆資料交由副程式排序,排序後在交由主程式印出
Source code:
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include <iostream>
using namespace std;
void bubble(int data[]);
int _tmain(int argc, _TCHAR* argv[])
{
int data[10];
for(int i=0;i<10;i++)
scanf_s("%d",&data[i]);
bubble(data);
for(int j=0;j<10;j++)
printf("%d ",data[j]);
system("pause");
return 0;
}
void bubble(int data[])
{
int i,j,temp;
for( i=1;i<10;i++)
for( j=0;j<(10-i);j++)
if(data[j]>data[j+1])
{
temp=data[j];
data[j]=data[j+1];
data[j+1]=temp;
}
}
執行結果:

2. 程式說明
搜尋任一socket program,並解釋說明之
socket:
Linux作業系統使用socket觀念來設計網路程式,
socket 是一種可做雙向資料傳輸的通道,Linux程序可經由此裝置與本地端或是遠端的程序做溝通。
Linux socket分成unix-domain socket和internet-domain socket二種。unix-domain socket又稱為local socket,主要用來與本地端的程序溝通。internet-domain socket用來與遠地端的程序溝通。
socket programming:1.有server&client兩端
2.server只有一個,而client可能有多個
3.server可設定監聽(listen)port number
socket program範例:
- Server.java
package onlyfun.caterpillar;
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
try {
int port = Integer.parseInt(args[0]);
System.out.println("簡易檔案接收...");
System.out.printf("將接收檔案於連接埠: %d%n", port);
ServerSocket serverSkt = new ServerSocket(port);
while(true) {
System.out.println("傾聽中....");
Socket clientSkt = serverSkt.accept();
System.out.printf("與 %s 建立連線%n",
clientSkt.getInetAddress().toString());
// 取得檔案名稱
String fileName = new BufferedReader(
new InputStreamReader(
clientSkt.getInputStream())).readLine();
System.out.printf("接收檔案 %s ...", fileName);
BufferedInputStream inputStream =
new BufferedInputStream(clientSkt.getInputStream());
BufferedOutputStream outputStream =
new BufferedOutputStream(new FileOutputStream(fileName));
int readin;
while((readin = inputStream.read()) != -1) {
outputStream.write(readin);
Thread.yield();
}
outputStream.flush();
outputStream.close();
inputStream.close();
clientSkt.close();
System.out.println("\n檔案接收完畢!");
}
}
catch(Exception e) {
e.printStackTrace();
}
}
}
再來是客戶端程式:
- Client.java
package onlyfun.caterpillar;
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try {
System.out.println("簡易檔案傳送...");
String remoteHost = args[0];
int port = Integer.parseInt(args[1]);
File file = new File(args[2]);
System.out.printf("遠端主機: %s%n", remoteHost);
System.out.printf("遠端主機連接埠: %d%n", port);
System.out.printf("傳送檔案: %s%n", file.getName());
Socket skt = new Socket(remoteHost, port);
System.out.println("連線成功!嘗試傳送檔案....");
PrintStream printStream =
new PrintStream(skt.getOutputStream());
printStream.println(file.getName());
System.out.print("OK! 傳送檔案....");
BufferedInputStream inputStream =
new BufferedInputStream(
new FileInputStream(file));
int readin;
while((readin = inputStream.read()) != -1) {
printStream.write(readin);
Thread.yield();
}
printStream.flush();
printStream.close();
inputStream.close();
skt.close();
System.out.println("\n檔案傳送完畢!");
}
catch(Exception e) {
e.printStackTrace();
}
}
}
筆記:
沒有留言:
張貼留言