قم بإنشاء README.md للاستخدام الداخلي لحزمة go التالية:
```اذهب
منفذ الحزمة

يستورد (
 "إف إم تي"
 "الرياضيات/راند"
 "شبكة"
 "مزامنة"
 "وقت"
)

اكتب بنية FreePort {
 sync.RWMutex
 دقيقة كثافة العمليات
 ماكس كثافة العمليات
 محاولات كثافة العمليات
}

وظيفة جديدة () \*فريبورت {
 rand.Seed(time.Now().UnixNano())
 العودة & فريبورت {
 الحد الأدنى: 50000،
 الحد الأقصى: 65535،
 المحاولات: 10،
 }
}
func (f \*FreePort) Get() int {
 المنفذ، يخطئ:= f.GetWithError()
 إذا أخطأت!= لا شيء {
 الذعر (خطأ)
 }
 ميناء العودة
}

// احصل على إرجاع منفذ مجاني.
func (f \*FreePort) GetWithError() (int, error) {
 قطيع()
 تأجيل f.Unlock()

 لأني := 0; أنا <f.المحاولات؛ أنا ++ {

 المنفذ := rand.Intn(f.max-f.min) + f.min

 ln, err := net.ListenTCP("tcp", &net.TCPadr{IP: net.ParseIP("127.0.0.1"), المنفذ: منفذ})
 إذا أخطأت!= لا شيء {
 يكمل
 }
 يخطئ = ln.Close()
 إذا أخطأت!= لا شيء {
 العودة -1، خطأ
 }
 ميناء العودة، لا شيء
 }
 return -1, fmt.Errorf("تعذر العثور على منفذ مجاني، ربما تزيد المحاولات؟")
}
```
{"source": "ewof/sharegpt-instruct-unfiltered-deduped", "kind": "human", "evolved_from": null}