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(); } } }
筆記:
沒有留言:
張貼留言